ElasticSearch сортировать сегменты на основе списка - PullRequest
1 голос
/ 29 апреля 2019

В запросе агрегации terms я хочу упорядочить сегменты на основе

  1. внешнего отсортированного списка - если элемент существует в этом внешнем отсортированном списке, он должен использовать этот
  2. внутренние агрегаты сегмента, такие как сумма - если их нет во внешнем отсортированном списке, используйте эти агрегаты

Пример: скажем, в ES мы получаем сегменты для A1, A2A3, A4.Внешний отсортированный список имеет [A3, A1].И для каждого сегмента мы имеем агрегацию суммы следующим образом:

A1: 20
A2: 30
A3: 10
A4: 60

Я хочу, чтобы окончательный ордер был [A3, A1, A4, A2].

Как мне написать этот запрос?Я видел этот вариант использования на уровне документа, который люди сделали с помощью скриптового запроса.Но для сортировки ведер я не вижу.

1 Ответ

1 голос
/ 29 апреля 2019

Идея заключалась бы в использовании bucket_sort конвейерной агрегации с сортировкой на основе сценариев .

Однако это пока не поддерживается, но есть открытый выпуск , который направлен на решение этой проблемы.

...