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": "[^åäöÅÄÖ]" } } } } } }