Оцените больше документов, содержащих все условия запроса - PullRequest
0 голосов
/ 20 мая 2018

У меня проблема с подсчетом очков вasticsearch.Когда пользователь вводит запрос, который содержит 3 термина, иногда документ, состоящий из двух слов, превосходит документ, который содержит все три слова.например, если пользователь вводит «учебное пособие по запросам эластичного поиска», я хочу, чтобы документы, содержащие все эти слова, имели более высокий балл, чем документ с большим количеством терминов «учебное пособие» и «эластичный поиск».

PS: я использую минимальное совпадение и гальку в моем запросе.Кроме того, они сделали рейтинг намного лучше, они не решили эту проблему полностью.Мне нужно что-то вроде координации запросов в практической функции оценки Lucene.Есть ли что-нибудь подобное в резинке с BM-25?

1 Ответ

0 голосов
/ 21 мая 2018

Одним из возможных решений может быть использование функциональной оценки :

{
    "query": {
        "function_score": {
          "query": { "match_all": {} },
          "functions": [
              {
                  "filter": { "match": { "title": "elasticserch" } },
                  "weight": 1
              },
              {
                  "filter": { "match": { "title": "tutorial" } },
                  "weight": 1
              }
          ],
          "score_mode": "sum"
        }
    }
}

В этом случае вы бы явно имели лучшую позицию для документов с большим количеством совпадений.Однако это полностью игнорирует TF-IDF или любые другие параметры.

...