CJK 宽度词元过滤器
编辑CJK 宽度词元过滤器编辑
按如下方式规范 CJK(中文、日文和韩文)字符的宽度差异
- 将全角 ASCII 字符变体折叠成等效的基本拉丁字符
- 将半角片假名字符变体折叠成等效的假名字符
此过滤器包含在 Elasticsearch 的内置 CJK 语言分析器 中。它使用 Lucene 的 CJKWidthFilter。
此词元过滤器可以被视为 NFKC/NFKD Unicode 规范化的一个子集。有关完整规范化支持,请参阅 analysis-icu
插件。
示例编辑
response = client.indices.analyze( body: { tokenizer: 'standard', filter: [ 'cjk_width' ], text: 'シーサイドライナー' } ) puts response
GET /_analyze { "tokenizer" : "standard", "filter" : ["cjk_width"], "text" : "シーサイドライナー" }
该过滤器生成以下词元
シーサイドライナー
添加到分析器编辑
以下 创建索引 API 请求使用 CJK 宽度词元过滤器来配置一个新的 自定义分析器。
response = client.indices.create( index: 'cjk_width_example', body: { settings: { analysis: { analyzer: { standard_cjk_width: { tokenizer: 'standard', filter: [ 'cjk_width' ] } } } } } ) puts response
PUT /cjk_width_example { "settings": { "analysis": { "analyzer": { "standard_cjk_width": { "tokenizer": "standard", "filter": [ "cjk_width" ] } } } } }