我刚刚开始探索Elasticsearch。我创建了一个文档,如下所示:
curl -XPUT "http://localhost:9200/cities/city/1" -d' { "name": "Saint Louis" }'
我现在尝试对Levenshtein距离为5的名称字段进行模糊搜索,如下所示:
curl -XGET "http://localhost:9200/_search " -d' { "query": { "fuzzy": { "name" : { "value" : "St. Louis", "fuzziness" : 5 } } } }'
但是它没有返回任何匹配。我希望圣路易斯的记录能归还。我该如何解决我的查询?
谢谢。
您的查询存在的问题是,最大编辑距离为2。
在上述情况下,您可能想要做的是将St.改为Saint 的同义词,这将与您匹配。当然,这将取决于您的数据,因为St也可能是“街道”。
如果您只想测试模糊搜索,则可以尝试以下示例
curl -XGET "http://localhost:9200/_search " -d' { "query": { "fuzzy": { "name" : { "value" : "Louiee", "fuzziness" : 2 } } } }