语音标记过滤器
编辑phonetic
标记过滤器
编辑phonetic
标记过滤器接受以下设置
-
编码器
- 使用哪个语音编码器。接受
metaphone
(默认)、double_metaphone
、soundex
、refined_soundex
、caverphone1
、caverphone2
、cologne
、nysiis
、koelnerphonetik
、haasephonetik
、beider_morse
、daitch_mokotoff
。 -
替换
- 是否应将原始标记替换为语音标记。接受
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
。