语音标记过滤器
编辑phonetic
标记过滤器
编辑phonetic
标记过滤器接受以下设置
-
encoder
- 要使用的语音编码器。接受
metaphone
(默认)、double_metaphone
、soundex
、refined_soundex
、caverphone1
、caverphone2
、cologne
、nysiis
、koelnerphonetik
、haasephonetik
、beider_morse
、daitch_mokotoff
。 -
replace
- 是否应将原始标记替换为语音标记。接受
true
(默认)和false
。beider_morse
编码不支持。
PUT phonetic_sample { "settings": { "index": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "standard", "filter": [ "lowercase", "my_metaphone" ] } }, "filter": { "my_metaphone": { "type": "phonetic", "encoder": "metaphone", "replace": false } } } } } } GET phonetic_sample/_analyze { "analyzer": "my_analyzer", "text": "Joe Bloggs" }
重要的是要注意,"replace": false
可能会导致意外行为,因为原始版本和语音分析版本都保留在相同的标记位置。某些查询会以特殊方式处理这些堆叠的标记。例如,模糊 match
查询不会对堆叠的同义词标记应用模糊度。这可能会导致难以诊断和推理的问题。因此,通常有益的做法是对使用和不使用语音过滤的分析使用单独的字段。这样,就可以针对两个字段运行具有不同提升和权衡的搜索(例如,仅在原始文本字段上运行模糊 match
查询,而不在语音版本上运行)。
Double metaphone 设置
编辑如果使用 double_metaphone
编码器,则支持此附加设置
-
max_code_len
- 发出的 metaphone 标记的最大长度。默认为
4
。
Beider Morse 设置
编辑如果使用 beider_morse
编码器,则支持以下附加设置
-
rule_type
- 匹配应该是
exact
还是approx
(默认)。 -
name_type
- 名称是
ashkenazi
、sephardic
还是generic
(默认)。 -
languageset
- 要检查的语言数组。如果未指定,则会猜测语言。接受:
any
、common
、cyrillic
、english
、french
、german
、hebrew
、hungarian
、polish
、romanian
、russian
、spanish
。