Избегайте msearch пропорционально смешивать результаты различных поисков в Elasticsearch - PullRequest
0 голосов
/ 17 марта 2020

У меня есть приложение для знакомств, где пользователям может нравиться \ не нравиться друг другу.
Я использую фильтры, предоставленные пользователем, для поиска профилей, давайте назовем эти общие результаты. Я хотел бы смешать их с пользователями, которым понравилось запрашивать пользователя (liked) в некотором соотношении, например от 1 до 5 (1 человек, который принадлежит liked на 5 общих профилей). Прямо сейчас я реализовал это с помощью 2 отдельных запросов и msearch, упрощенный запрос выглядит следующим образом (liked - это массив идентификаторов):

/_msearch

{ "index": "users" }
{
  "query": {
    "bool": {
      "must_not": [
        {
          "terms": {
            "_id": liked
          }
        }
      ],
  "filter": [...]
    }
  }
}
{ "index": "users" }
{
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "_id": liked
          }
        }
      ]
    }
  }
}

И затем я смешиваю их в коде. Я хотел бы знать, возможно ли как-то избежать использования msearch и сделать это одним запросом при сохранении отношения - 1/5 от второго запроса и 4/5 от первого?

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