Я хочу реализовать агрегацию, которая возвращает документы, частота которых превышает определенный порог.Elasticsearch Java API: фильтр агрегации для количества документов
Например, здесь агрегация, чтобы получить все документы, с их подсчетами
AggregationBuilder aggregation = AggregationBuilders
.terms("agg").field("column_name");
так что это дает мне счетчик документов для каждого значения в column_name
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"},{"doc_count":23,"key":"val3"}]
сейчас, позволяет скажем, я не хочу всех этих документов. Я только хочу, чтобы те, которые имеют doc_count
больше 25
Так идеальный результат будет
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"}]
как я применить такой фильтр для моей агрегации? Я смотрел на FilterBuilders
и фильтровал агрегации, но они предназначены для применения фильтров по любым значениям в документах. Например, я могу применить фильтр только для получения документов, где val1 == xza
для column_name
но это не то, что я ищу. Я хочу применить пороговое значение для значений doc_cunt
после применения агрегации.
Возможно ли это? Я использую elasticsearch java api версия 1.7.2
спасибо! это было – AbtPst