phonetic 标记过滤器

编辑

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

编码器
使用哪个语音编码器。接受 metaphone(默认)、double_metaphonesoundexrefined_soundexcaverphone1caverphone2colognenysiiskoelnerphonetikhaasephonetikbeider_morsedaitch_mokotoff
替换
是否应将原始标记替换为语音标记。接受 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