phonetic 标记过滤器

编辑

phonetic 标记过滤器接受以下设置

encoder
要使用的语音编码器。接受 metaphone(默认)、double_metaphonesoundexrefined_soundexcaverphone1caverphone2colognenysiiskoelnerphonetikhaasephonetikbeider_morsedaitch_mokotoff
replace
是否应将原始标记替换为语音标记。接受 true(默认)和 falsebeider_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" 
}

返回:JjoeBLKSbloggs

重要的是要注意,"replace": false 可能会导致意外行为,因为原始版本和语音分析版本都保留在相同的标记位置。某些查询会以特殊方式处理这些堆叠的标记。例如,模糊 match 查询不会对堆叠的同义词标记应用模糊度。这可能会导致难以诊断和推理的问题。因此,通常有益的做法是对使用和不使用语音过滤的分析使用单独的字段。这样,就可以针对两个字段运行具有不同提升和权衡的搜索(例如,仅在原始文本字段上运行模糊 match 查询,而不在语音版本上运行)。

Double metaphone 设置
编辑

如果使用 double_metaphone 编码器,则支持此附加设置

max_code_len
发出的 metaphone 标记的最大长度。默认为 4
Beider Morse 设置
编辑

如果使用 beider_morse 编码器,则支持以下附加设置

rule_type
匹配应该是 exact 还是 approx(默认)。
name_type
名称是 ashkenazisephardic 还是 generic(默认)。
languageset
要检查的语言数组。如果未指定,则会猜测语言。接受:anycommoncyrillicenglishfrenchgermanhebrewhungarianpolishromanianrussianspanish