подсчет баллов в зависимости от количества слов в выражениях - PullRequest
0 голосов
/ 07 марта 2019

В настоящее время мы работаем сasticsearch 6.6, и у нас проблемы с match_phrase и вычисленным счетом.

Что такое настройка

На данный момент настройка подобия такова:

"scripted_wc": { "type": "scripted", "script": { "source": "return doc.freq;" } }

Что мы хотим иметь

Например, у нас есть 3 документа: "bbb aaa aaa bbb aaa" "aaa ccc aaa bbb" "ccc aaa aaa bbb aaa"

И запрос выглядит так:

GET _search/ { "explain": true, "query": { "match_phrase": { "myfield": "ccc aaa" } } }

Когда мы запрашиваем "aaa", получаются 3, 2 и 3 балла. Это правильно. Но если мы ищем "ccc aaa", мы получаем оценки 0, 2, 2. Мы ожидаем получить 0, 1, 1. Когда мы включаем объяснение, мы видим, что для каждого добавленного слова создается своего рода подзапрос, который возвращает 1 но подводит итог. Таким образом, «ccc aaa aaa» возвращает 0, 0, 3 вместо 0, 0, 1. «bbb aaa» должно возвращать 2, 0, 1 для каждого документа (0, конечно, не будет возвращено). Здесь вы можете увидеть вывод объяснения: https://pastebin.com/jHPnTLEV

Это ошибка или наше понимание неверно? Как мы можем этого добиться?

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...