http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-stats-aggregation.html#_script_5
On Monday, 6 April 2015 18:29:55 UTC+9, Max Just wrote:Добрый день, подскажите существует ли возможность фильтрации значений возвращаемого массива для участия в аггрегации. То есть, есть запись в эластике, которая содержит несколько полей, одно из них цена. Поле в виде массива и, например, там такие значения: 250 500 700 1500. При аггрегируещем запросе, stats или min / max. Нужно чтобы значение 1500 не участвовало, то есть именно одно из значений поля, а не вся запись целиком. Можно это как-то реализовать или это в принципе не возможно?
--
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "elasticsearch-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/elasticsearch-ru/st8flTiuCcU/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес elasticsearch-...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес elastics...@googlegroups.com.
Чтобы зайти в группу, перейдите по ссылке http://groups.google.com/group/elasticsearch-ru.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Это я понял, а как его получить? Я так и не смог найти пример.
В скрипте вы можете получить массив из записи, выкинуть из него все что не нужно и вернуть меньший массив для последующей аггрегации.
On Tuesday, 28 April 2015 05:55:48 UTC-4, Max Just wrote:Тут просто вопрос не в том, чтобы изменить значение уже посчитаной аггрегации (как в примере по ссылке), а исключить значения 1500 и более, чтобы они не вообще участвовали в аггрегации, но другие значения поля в аггрегацию попадали. Пробовал ставить фильтр по полю price (range to 1500), но те документы где price = [50, 100, 1500] (так как поле массив) проходят по фильтру, так как 50 и 100 меньше 1500. А так как документ прошел то, он участвует в stats аггрегации и собственно максимальное значение (stats.max) высчитывается как 1500. Как можно разрешить эту ситуацию?
--
Это я понял, а как его получить? Я так и не смог найти пример.
ср, 29 апр. 2015, 18:24, Igor Motov <imo...@gmail.com>:
В скрипте вы можете получить массив из записи, выкинуть из него все что не нужно и вернуть меньший массив для последующей аггрегации.--
On Tuesday, 28 April 2015 05:55:48 UTC-4, Max Just wrote:Тут просто вопрос не в том, чтобы изменить значение уже посчитаной аггрегации (как в примере по ссылке), а исключить значения 1500 и более, чтобы они не вообще участвовали в аггрегации, но другие значения поля в аггрегацию попадали. Пробовал ставить фильтр по полю price (range to 1500), но те документы где price = [50, 100, 1500] (так как поле массив) проходят по фильтру, так как 50 и 100 меньше 1500. А так как документ прошел то, он участвует в stats аггрегации и собственно максимальное значение (stats.max) высчитывается как 1500. Как можно разрешить эту ситуацию?
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "elasticsearch-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/elasticsearch-ru/st8flTiuCcU/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес elasticsearch-ru+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес elasticsearch-ru@googlegroups.com.
On Wednesday, 29 April 2015 11:39:53 UTC-4, Max Just wrote:
Это я понял, а как его получить? Я так и не смог найти пример.
ср, 29 апр. 2015, 18:24, Igor Motov <imo...@gmail.com>:
В скрипте вы можете получить массив из записи, выкинуть из него все что не нужно и вернуть меньший массив для последующей аггрегации.--
On Tuesday, 28 April 2015 05:55:48 UTC-4, Max Just wrote:Тут просто вопрос не в том, чтобы изменить значение уже посчитаной аггрегации (как в примере по ссылке), а исключить значения 1500 и более, чтобы они не вообще участвовали в аггрегации, но другие значения поля в аггрегацию попадали. Пробовал ставить фильтр по полю price (range to 1500), но те документы где price = [50, 100, 1500] (так как поле массив) проходят по фильтру, так как 50 и 100 меньше 1500. А так как документ прошел то, он участвует в stats аггрегации и собственно максимальное значение (stats.max) высчитывается как 1500. Как можно разрешить эту ситуацию?
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "elasticsearch-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/elasticsearch-ru/st8flTiuCcU/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес elasticsearch-...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес elastics...@googlegroups.com.
Чтобы зайти в группу, перейдите по ссылке http://groups.google.com/group/elasticsearch-ru.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
--
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "elasticsearch-ru".
Чтобы отменить подписку на эту тему, перейдите по ссылке https://groups.google.com/d/topic/elasticsearch-ru/st8flTiuCcU/unsubscribe.
Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на электронный адрес elasticsearch-...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес elastics...@googlegroups.com.