弹性搜索模糊搜索没有找到想要的结果

Elastic Search fuzzy search not finding desired results

在弹性搜索索引中,我有商标 data.I 在数据库中有名为 HILTON 的商标,但是当我搜索 hillytown 时没有找到 hilton,但是当搜索 hilytown 它找到了。当我搜索 hillytown

时,如何修改 elsatic 搜索以查找 hilton

注意: : hillytown 有两个 l

我尝试的搜索是

$param = '
       {
        "query": {
        "fuzzy" : {
            "trademark" : {
                "value": "'.$keyword.'",
                "boost": 1.0,
                "fuzziness": "AUTO",
                "prefix_length": 0,
                "max_expansions": 100,
                "transpositions":true
            }
        }
      }
      }';

http://localhost:9200/watch_index_write/_search

我认为您无法让 "hillytown" 匹配 "hilton"。 Elasticsearch allows a maximum fuzziness (levenshtein distance) 的 2,但 hillytown 的距离为 3(需要删除 3 个字母)。

我自己还没有尝试过,但是 phonetic analysis plugin 可能会提供前进的方向。