ICU 折叠词元过滤器
编辑ICU 折叠词元过滤器
编辑基于 UTR#30
的 Unicode 字符大小写折叠,就像打了鸡血的 ASCII 折叠词元过滤器。它将自身注册为 icu_folding
词元过滤器,并且可用于所有索引
PUT icu_sample { "settings": { "index": { "analysis": { "analyzer": { "folded": { "tokenizer": "icu_tokenizer", "filter": [ "icu_folding" ] } } } } } }
ICU 折叠词元过滤器已经执行了 Unicode 规范化,因此无需再使用规范化字符或词元过滤器。
可以通过指定 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": "[^åäöÅÄÖ]" } } } } } }