Как взвесить результаты в зависимости от порядка и расстояния слов во фразе, используя эластичный поиск - PullRequest
0 голосов
/ 04 ноября 2019

Если у меня есть запрос, который ищет фразу, как я могу сделать так, чтобы Elasticsearch взвешивал оценки на основе порядка и расстояния каждого слова в фразе, а не их присутствия? Например, если я ищу «дом в аренду», я строю запрос:

{
  "query": {
    "bool": {
      "must": [{
        "query_string": {
          "query": "house for rent"
        }
      }]
    }
  }
}

Этот запрос возвращает результаты в следующем порядке:

"I am looking to rent a house" -> all terms present out of order with words in between
"I am looking for a house that would be for me to rent" -> all terms present in order with words in between
"I am looking for house to rent" -> 'house for rent' exactly
"I live in a house" -> only 1 term present

В первых трех результатах содержатся все словав фразе, но иногда не в порядке или со словами между ними. Я ожидаю, что точное совпадение фразы будет иметь самый высокий балл, но это не так. Как я могу настроить оценку, чтобы учесть порядок и расстояние фразы? Могу ли я достичь этого с помощью query_string или есть другой тип запроса, который я должен использовать?

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