Агрегация диапазона с минимальной и максимальной агрегацией в java

У меня есть сценарий, в котором мне нужно создать агрегацию диапазона для эластичного поиска в java для числового поля, но у меня нет диапазона. Мне нужно рассчитать диапазон (минимум и максимум) из существующих документов, а затем передать его в агрегацию диапазона. Как мы можем сделать это ? Это тот случай, когда мы можем комбинировать диапазон, минимальную и максимальную агрегацию?


person Pratap Gangwani    schedule 17.09.2020    source источник


Ответы (2)


В идеале можно выбрать значение или тип значения/результатов из выходных данных агрегации для повторного использования в другом семействе агрегаций. Это семейство агрегаций называется конвейерной агрегацией https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline.html

Однако агрегация диапазона не является частью агрегации одноуровневого конвейера. Итак, в вашем сценарии вам нужно будет сделать 1-й запрос (с минимальным и максимальным значением в качестве двух метрических агрегаций https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics.html), чтобы получить минимальное и максимальное значение, а затем повторно используйте данные для второго вызова ES.

person Srikanta    schedule 19.09.2020

Аналогичный вопрос уже задан - Как создать динамический ценовой диапазон фильтровать с помощью elasticsearch

Ссылки в сообщении выше указывают на открытую проблему/функцию, которую многие люди запрашивают у elasticsearch для агрегации диапазонов.

person Kiran Pawar    schedule 21.09.2020