Предположим, что мой индекс есть два документа:ElasticSearch принимая порядок слов во внимание в запросе соответствия
- «Foo бар»
- «бар Foo»
Когда я регулярный запрос матча для «bar foo» оба документа соответствуют правильно, но они получают равные оценки соответствия. Тем не менее, я хочу, чтобы порядок слов был значительным во время подсчета очков. Другими словами, я хочу, чтобы «bar foo» имел более высокий балл.
Итак, я попытался поместить свой запрос соответствия в предложение must запроса bool и включил match_phrase (с той же строкой запроса) в качестве предложения. Это, кажется, правильно оценивает результаты, пока я не выполнил поиск с помощью «bar test foo». В этом случае запрос match_phrase, похоже, не соответствует, а образы снова возвращаются с равными оценками.
Как я могу построить свой индекс/запрос, чтобы он учитывал порядок слов, но не требует, чтобы все слова поиска существовали в документе?
Я думаю, что расширение CirrusSearch MediaWiki делает это. Результаты могут быть неожиданными: https://www.mediawiki.org/wiki/Thread:Help_talk:CirrusSearch/Impact_of_word_order_in_two-words_search_query – Nemo