2017-04-06 2 views
0

Ich verwende Elasticsearch 5.3. Im Java-Client möchte ich Filter für mehrere Felder verwenden, die die Logik AND in einem einzigen Bucket verwenden. Derzeit unterstützt die Filteraggregation nur einzelne termQuery. Wie codiere ich mehrere termQuery im Java-Client?Wie kombinieren Sie mehrere Filteraggregationen in Elasticsearch?

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

Antwort

0

Sie benötigen einen Bool-Abfrage für das verwenden:

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

AggregationBuilders.filter("specific_session", filters); 
Verwandte Themen