Как сортировать данные перед применением агрегации терминов в эластичном поискеElasticsearch aggregation

Ответить Пред. темаСлед. тема
Гость
 Как сортировать данные перед применением агрегации терминов в эластичном поиске

Сообщение Гость »


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

Версия эластичного поиска: 8.7.1

пример документа Elatic Search:

{ "itemDetails": { "itemId": "3076", "itemId2": "1003918865", "usecase": "habc", "usecaseId": "xyz" }, "метаданные": { "cId": "96ff54507c2d018e5c767785c705a5b2", "date1": "2023-09-29T12:29:54", "date2": "2023-09-29T12:30:09" } другие объекты.... } В приведенном выше документе сначала я хотел бы отсортировать записи, используя дату1 и дату2, а затем нужно получить отдельные записи, используя «cId».

с помощью приведенного ниже запроса можно сортировать данные по дате 1 и дате 2, однако мы получаем записи с повторяющимся идентификатором cId:

Запрос1:

POST /index/_search?typed_keys=true { «размер»: 0, "запрос": { "бул": { "должен": [ { "условия": { "itemDetails.itemId": [ "3076" ] } }, { "условия": { "itemDetails.usecase": [ "хабк" ] } }, { "диапазон": { "metaData.date1": { "lte": "2023-09-30T19:55:54.611Z", "gte": "2023-09-27T19:55:54.611Z" } } } ] } }, "аггс": { "sortby_date1": { "условия": { "поле": "metaData.date1", "заказ": { "_key": "дескрипт" }, «размер»: 6 }, "аггс": { "sortby_date2": { "условия": { "поле": "metaData.date2", "заказ": { "_key": "дескрипт" } }, "аггс": { "groupby_cId": { "условия": { "поле": "metaData.cId" }, "аггс": { "top_doc": { "top_hits": { «размер»: 1, "_источник": { "включает в себя": [ "itemDetails.itemId", "itemDetails.usecase", "метаданные.cId", "метаданные.дата1" ] } } } } } } } } } } } Запрос2: агрегирование терминов не дает уникальных записей при использовании с сортировкой.
{ "запрос": { "бул": { "должен": [ { "условия": { "itemDetails.itemId": [ "3077" ] } }, { "условия": { "itemDetails.usecase": [ "xyz" ] } }, { "диапазон": { "metaData.date1": { "lte": "2023-09-30T19:55:54.611Z", "gte": "2023-09-27T19:55:54.611Z" } } } ] } }, "Сортировать": [ { "metaData.date1": { "заказ": "описание" } }, { "metaData.date2": { "заказ": "описание" } } ], "аггс": { "distinct_cIds": { "условия": { "поле": "metaData.cId" }, "аггс": { "top_doc": { "top_hits": { «размер»: 1, "_источник": { "включает в себя": [ "itemDetails.itemId", "itemDetails.usecase", "метаданные.cId", "метаданные.дата1" ] } } } } } } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Elasticsearch aggregation»