2016-06-15 2 views
2

Какие анализаторы вы бы использовали в Elasticsearch для поиска книг.Нечеткость на трехбуквенных словах

Требования, которые должны быть нечеткими, и есть слово, которое составляет 3 буквы.

Я не собираюсь включать код, потому что я хотел бы получить свежую информацию. Но проблема в том, что когда я искал 3 буквы, неправильно, Скажем, я печатаю «dns» и есть документ с полем «dna», тогда я получу доброту или что-то, что имеет dns в слове.

ответ

1

Я считаю, что для решения вашей проблемы вы можете использовать поле нечеткости в своем нечетком запросе, это позволит вам установить максимальное расстояние редактирования, так что длинные слова не будут совпадать, когда ваш ввод будет очень маленьким словом.

{ 
"fuzzy" : { 
    "user" : { 
     "value" :   "ki", 
     "fuzziness" :  2, 
     "prefix_length" : 1 
    } 
    } 
} 

Этот запрос будет соответствовать всем 3 букв слова, которые начинаются с буквы «к» и все четыре буквы слова, которые начинаются с буквы «ки». Нечеткость 2 означает, что разрешены любые 2 изменения, то есть либо изменить «i» на другую букву, а затем добавить другую букву или добавить еще две буквы, сохраняя «ki». Длина префикса сообщает elasticsearch, сколько запросов нужно точно сопоставить, прежде чем может возникнуть нечеткость.

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html

Смежные вопросы