2017-04-06 142 views
0

我正在使用Elasticsearch 5.3。在Java客户端中,我想使用AND逻辑将多个字段上的过滤器合并到一个存储桶中。目前,过滤器汇总仅支持单个termQuery。如何在Java客户端中编码多个termQuery如何结合Elasticsearch中的多个过滤器聚合?

AggregationBuilders.filter("specific_session", QueryBuilders.termQuery(FIELD_SESSION_ID, sessionId)); 

回答

0

你需要使用一个布尔查询:

BoolQueryBuilder filters = QueryBuilders.boolQuery() 
    .filter(QueryBuilders.termQuery(FIELD_SESSION_ID, sessionId)) 
    .filter(QueryBuilders.termQuery(FIELD_XYZ, xyz)); 

AggregationBuilders.filter("specific_session", filters);