У меня есть приложение для знакомств, где пользователям может нравиться \ не нравиться друг другу.
Я использую фильтры, предоставленные пользователем, для поиска профилей, давайте назовем эти общие результаты. Я хотел бы смешать их с пользователями, которым понравилось запрашивать пользователя (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 от первого?