ICU 折叠分词过滤器
编辑ICU 折叠分词过滤器
编辑基于UTR#30
对 Unicode 字符进行大小写折叠,类似于ASCII 折叠分词过滤器的增强版。它将自身注册为icu_folding
分词过滤器,并可用于所有索引。
PUT icu_sample { "settings": { "index": { "analysis": { "analyzer": { "folded": { "tokenizer": "icu_tokenizer", "filter": [ "icu_folding" ] } } } } } }
ICU 折叠分词过滤器已经执行了 Unicode 规范化,因此无需再使用 Normalize 字符或分词过滤器。
可以通过指定unicode_set_filter
参数来控制哪些字母被折叠,该参数接受一个UnicodeSet。
以下示例将瑞典语字符排除在折叠之外。需要注意的是,应指定大小写两种形式,并且这些过滤后的字符不会被小写,这就是为什么我们还添加了lowercase
过滤器。
PUT icu_sample { "settings": { "index": { "analysis": { "analyzer": { "swedish_analyzer": { "tokenizer": "icu_tokenizer", "filter": [ "swedish_folding", "lowercase" ] } }, "filter": { "swedish_folding": { "type": "icu_folding", "unicode_set_filter": "[^åäöÅÄÖ]" } } } } } }