语音标记过滤器
编辑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
编码器,则支持此附加设置
-
max_code_len
- 发出的元音标记的最大长度。默认为
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
。