Причина, по которой вы получаете оценку 1 для всех совпавших документов, заключается в следующем: запрос с подстановочными знаками / префиксами является запросами с несколькими терминами, и для их выполнения Elasticsearch необходимо переписать (чтобы получить действительные совпадающие термины)
Есть несколько способов добиться этого, по умолчанию один из них называется constant_score
, который присваивает все постоянные результаты (баллы)
Существует несколько различных способов переписать - некоторые из них будут давать неравные оценки, но этот результат скорее будет зависеть от TF-IDF распределения терминов (например, как часто worda происходит в соответствующем документе, и сколько документов во всем индексе содержит worda ). В качестве первого стартового способа вы можете попробовать top_terms_1000
, настроив позже.
К сожалению, не существует идеального способа достижения ожидаемого поведения.
Один из возможных способов имитировать это попытка адаптировать Edge NGram tokenizer для получения токенов из слова abc следующим образом:
w, wo, wor, word, ...
В этом случае запрос может дать более значимый результат. Для идеального ожидаемого результата - процент совпадения - вам нужно создать собственный механизм запроса и оценки