Метод filter (FilterBuilder) в типе FilterAggregationBuilder не применим для аргументов (BoolQueryBuilder) - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь сгруппировать и подгруппировать в эластичном запросе, сначала по ipgroup, а затем по приоритету.

TermsBuilder ipGroupAgg = AggregationBuilders.terms("by_ipGroup").field("IP Group")
                .subAggregation(AggregationBuilders.terms("by_Priority").field("Priority"));
        // create the bool filter for the condition above
        String[] priority= { "2", "3" };
        BoolQueryBuilder aggFilter = QueryBuilders.boolQuery().must(QueryBuilders.termsQuery("Priority", priority));

        // create the filter aggregation and add the year sub-aggregation
        FilterAggregationBuilder aggregation = AggregationBuilders.filter("agg").filter(aggFilter).subAggregation(ipGroupAgg );

Но последний оператор выдает ошибку компиляции, сообщающую «Метод filter (FilterBuilder) в типе FilterAggregationBuilderнеприменимо для аргументов (BoolQueryBuilder) "для фильтра (aggFilter)

1 Ответ

0 голосов
/ 21 сентября 2018

Вы, вероятно, используете старую версию ES, мои смелости говорят мне 1.7 или более раннюю ... В этом случае вам нужно использовать следующий код для создания aggFilter:

    BoolFilterBuilder aggFilter = FilterBuilders.boolFilter().must(FilterBuilders.termsFilter("Priority", priority));
...