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 编码器,则支持此附加设置

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

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

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