CJK 双字节词元过滤器
编辑CJK 双字节词元过滤器编辑
形成 双字节词 从 CJK(中文、日文和韩文)词元。
此过滤器包含在 Elasticsearch 的内置 CJK 语言分析器 中。它使用 Lucene 的 CJKBigramFilter。
示例编辑
以下 分析 API 请求演示了 CJK 双字节词元过滤器的工作原理。
response = client.indices.analyze( body: { tokenizer: 'standard', filter: [ 'cjk_bigram' ], text: '東京都は、日本の首都であり' } ) puts response
GET /_analyze { "tokenizer" : "standard", "filter" : ["cjk_bigram"], "text" : "東京都は、日本の首都であり" }
过滤器生成以下词元
[ 東京, 京都, 都は, 日本, 本の, の首, 首都, 都で, であ, あり ]
添加到分析器编辑
以下 创建索引 API 请求使用 CJK 双字节词元过滤器来配置一个新的 自定义分析器。
response = client.indices.create( index: 'cjk_bigram_example', body: { settings: { analysis: { analyzer: { standard_cjk_bigram: { tokenizer: 'standard', filter: [ 'cjk_bigram' ] } } } } } ) puts response
PUT /cjk_bigram_example { "settings": { "analysis": { "analyzer": { "standard_cjk_bigram": { "tokenizer": "standard", "filter": [ "cjk_bigram" ] } } } } }
可配置参数编辑
-
ignored_scripts
-
(可选,字符脚本数组) 要禁用双字节词的字符脚本数组。可能的值
-
han
-
hangul
-
hiragana
-
katakana
所有非 CJK 输入将直接通过。
-
-
output_unigrams
- (可选,布尔值) 如果为
true
,则以双字节词和 单字节词 形式发出词元。如果为false
,则当 CJK 字符没有相邻字符时,它将以单字节词形式输出。默认为false
。
自定义编辑
要自定义 CJK 双字节词元过滤器,请复制它以创建新的自定义词元过滤器的基础。您可以使用其可配置参数修改过滤器。
response = client.indices.create( index: 'cjk_bigram_example', body: { settings: { analysis: { analyzer: { han_bigrams: { tokenizer: 'standard', filter: [ 'han_bigrams_filter' ] } }, filter: { han_bigrams_filter: { type: 'cjk_bigram', ignored_scripts: [ 'hangul', 'hiragana', 'katakana' ], output_unigrams: true } } } } } ) puts response
PUT /cjk_bigram_example { "settings": { "analysis": { "analyzer": { "han_bigrams": { "tokenizer": "standard", "filter": [ "han_bigrams_filter" ] } }, "filter": { "han_bigrams_filter": { "type": "cjk_bigram", "ignored_scripts": [ "hangul", "hiragana", "katakana" ], "output_unigrams": true } } } } }