Я только начал изучать Elasticsearch. Я создал документ следующим образом:Нечеткое совпадение строк с использованием алгоритма Левенштейна в Elasticsearch
curl -XPUT "http://localhost:9200/cities/city/1" -d'
{
"name": "Saint Louis"
}'
теперь я пытался сделать нечеткий поиск на поле имени с расстоянием Левенштейн 5 следующим образом:
curl -XGET "http://localhost:9200/_search " -d'
{
"query": {
"fuzzy": {
"name" : {
"value" : "St. Louis",
"fuzziness" : 5
}
}
}
}'
Но его не возвращает ни одного матча. Я ожидаю, что запись Сент-Луиса будет возвращена. Как я могу исправить свой запрос?
Спасибо.
У меня есть запрос с должен с function_score с нечеткостью 0,75 с multi_match с cross_field Моим запрос термин без одного последнего символа - например, «NAM» вместо «NAME» По правилам нечеткости он должен быть возвращен мне, но я не получаю результатов. Что бы вы посоветовали по этому вопросу? Есть ли путь без NGRAM? –
Грегори, вероятно, лучше всего разместить это как новый вопрос, а также детали вашего сопоставления и запроса. – Akshay
@Gregory fuzziness не поддерживается для запросов cross_field типа multi_match. –