弹性搜索模糊搜索未找到所需结果

时间:2018-07-18 11:16:51

标签: elasticsearch fuzzy-search

在弹性搜索索引中,我有商标数据。我在数据库中有一个名为HILTON的商标,但是当我搜索hillytown时,找不到hilton,而是搜索hilytown时它找到。当我搜索hilton时如何修改elsatic搜索以找到hillytown

注释: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

1 个答案:

答案 0 :(得分:1)

我认为您无法使“ hillytown”与“ hilton”相匹配。 Elasticsearch allows的最大模糊度(levenshtein distance)为2,但丘陵镇的距离为3(需要删除3个字母)。

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