Изменен рейтинг запросов Elasticsearch 6.5. Как получить результаты типа ES 5? - PullRequest
0 голосов
/ 24 января 2019

Я делаю рекомендацию с Elasticsearch. Я знаю, что люди купили, и это формирует запрос. Индекс состоит из предметов и содержит поле, в котором содержатся товары, купленные совместно.

Мы использовали ES 5, и следующий запрос находит наивысшую оценку, то есть элементы, которые имеют наибольшее сходство с запросом. Но этот запрос в ES 6 возвращает только оценка = 1,0 и поэтому больше не находит наиболее похожие элементы.

{
  "query": {
    "bool": {
      "should": [
        {
          "terms": {
            "bought": [
              "iPad Pro",
              "iPhone 8"
            ]
          }
        }
      ]
    }
  }
}

Как получить те же результаты с запросом ES 6?

1 Ответ

0 голосов
/ 25 января 2019

Он указан как критическое изменение в Elasticsearch 6.0. По сути, запрос terms теперь всегда возвращает баллы, равные 1

К сожалению, как я уже говорил, было бы очень трудно вести себя точно так же, но в соответствии с вашей логикой - я бы порекомендовал использовать логический запрос, например,

{
  "query": {
    "bool" : {
      "should" : [
        { "term" : { "bought" : "Ipad PRO" } },
        { "term" : { "bought" : "Iphone XS" } }
      ]
    }
  }
}

В этом случае вы сможете имитировать то же поведение запроса терминов, но и сохранять счет, связанный именно с той логикой, которую вы хотите. Если человек только что купил 1 вещь из 2, оценка будет меньше.

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