В настоящее время Elasticsearch не поддерживает процентили (включая медиану).
Процентили гораздо сложнее вычислить, чем статистику в распределенной среде. Предположим, у вас есть 2 осколка. Если вы спросите их обоих о сумме их значений и количестве значений, вы сможете узнать глобальное среднее значение: ($sum1 + $sum2) / $(value_count1 + $value_count2)
.
С другой стороны, если вы хотите вычислить медиану, единственный способ точно вычислить ее — получить все значения из обоих сегментов, отсортировать их и взять медиану. Это потребует много памяти и пропускной способности сети.
К счастью, существуют алгоритмы, которые позволяют вычислять хорошие приблизительные значения процентилей с ограниченным использованием памяти, и мы, в частности, изучаем tdigest, поэтому вполне вероятно, что (приблизительные) процентили будут поддерживаться в будущем выпуске Elasticsearch.
person
jpountz
schedule
13.02.2014