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