У меня есть документы, представляющие пользователей. Они имеют поля name
и surname
.
Скажем, у меня есть два пользователя, проиндексированных - Майкл Джексон и Майкл Старр. Я хочу, чтобы эти образцы поиска работали:
- Майкл = > {Майкл Джексон, Майкл Старр}
- Jack Mich = > {Michael Jackson} (неполные слова и обратный порядок)
- Michal Star = > {Michael Starr} (нечеткий поиск)
Я пробовал разные запросы и получал лучшие результаты из запроса multi_match с типом cross_fields. Однако есть две проблемы:
- Он только находит что-то, когда по крайней мере одно из двух слов завершено. Если я наберу Джексона Мика, он найдет Майкла Джексона, но если я наберу Джек Мич, он ничего не найдет (но я хочу, чтобы он его нашел).
- Невозможно установить нечеткий поиск. Мне действительно нужен нечеткий поиск, но сохраняйте качество multi_match с типом cross_fields.
Другими словами, я хочу реализовать Facebook-подобных людей, ищущих.
Я новичок в ElasticSearch, поэтому, возможно, я пропустил что-то очевидное. Извините, если я это сделаю.