在弹性搜索索引中,我有商标数据。我在数据库中有一个名为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
答案 0 :(得分:1)
我认为您无法使“ hillytown”与“ hilton”相匹配。 Elasticsearch allows的最大模糊度(levenshtein distance)为2,但丘陵镇的距离为3(需要删除3个字母)。
我自己还没有尝试过,但是phonetic analysis plugin可能提供了前进的方向。