Выборочная сортировка непрерывных результатов поиска по атрибуту - PullRequest
1 голос
/ 02 апреля 2020

Я проверял inte rnet на документацию Elasticsearch или пример, чтобы решить мою проблему с манипулированием результатами запроса, но пока не повезло. Вот проблема, которую я хочу решить.

Я хочу избежать того, чтобы результаты продукта имели непрерывный merchant_id. Мне нужно переместить документ между продуктами с одинаковым merchant_id. Для более наглядного понимания моего вопроса, вот пример результата и ожидаемого результата, который мне нужен.

Исходный результат ES:

{ "merchant_id": 1, "product_name": "Product 1" },
{ "merchant_id": 1, "product_name": "Product 2" },
{ "merchant_id": 1, "product_name": "Product 3" },
{ "merchant_id": 2, "product_name": "Product 4" },
{ "merchant_id": 2, "product_name": "Product 5" },
{ "merchant_id": 2, "product_name": "Product 6" }

Ожидаемый результат ES:

{ "merchant_id": 1, "product_name": "Product 1" },
{ "merchant_id": 2, "product_name": "Product 4" },
{ "merchant_id": 1, "product_name": "Product 2" },
{ "merchant_id": 2, "product_name": "Product 5" },
{ "merchant_id": 1, "product_name": "Product 3" },
{ "merchant_id": 2, "product_name": "Product 6" }

1 Ответ

0 голосов
/ 04 апреля 2020

Лучше всего рандомизировать результат:

{
  "query": {
    "function_score": {
      "query": {
        //your query
      },
      "functions": [
        {
          "random_score": {}
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...