Я использую нечеткое сопоставление в своем проекте, главным образом, для поиска орфографических ошибок и различных написаний с одинаковыми именами.Мне нужно точно понять, как работает нечеткое сопоставление эластичного поиска и как оно использует 2 параметра, упомянутых в заголовке.
Как я понимаю, min_simility представляет собой процент, на который запрашиваемая строкасоответствует строке в базе данных.Я не смог найти точное описание того, как рассчитывается это значение.
max_expansions , насколько я понимаю, это расстояние Левенштейна, по которому должен выполняться поиск.Если бы это было расстояние Левенштейна, это было бы идеальным решением для меня.Во всяком случае, это не работает, например, у меня есть слово "Самвел"
queryStr max_expansions matches?
samvel 0 Should not be 0. error (but levenshtein distance can be 0!)
samvel 1 Yes
samvvel 1 Yes
samvvell 1 Yes (but it shouldn't have)
samvelll 1 Yes (but it shouldn't have)
saamvelll 1 No (but for some weird reason it matches with Samvelian)
saamvelll anything bigger than 1 No
Документация говорит что-то, что я на самом деле не понимаю:
Add max_expansions to the fuzzy query allowing to control the maximum number
of terms to match. Default to unbounded (or bounded by the max clause count in
boolean query).
Так что, пожалуйста, кто-нибудь может объяснить мне, какИменно эти параметры влияют на результаты поиска.