2017-05-17 48 views
0

我如何暗示的 ( 「標籤」= 「A」 或 「標籤」= 「B」)和 「名」= 「貓」Elasticsearch應該操作查詢

像一個 「應該」 的操作?

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery() 
.should(QueryBuilders.matchQuery("tag","A")) 
.shold(QueryBuilders.matchQuery("tag","B")) 

.must(QueryBuilders.matchQuery(「name」,「cat」));

回答

1

如果你想要做("tag"="A" OR "tag"="B") and "name"="cat",你可以做如下:

BoolQueryBuilder aOrB = QueryBuilders.boolQuery() 
.should(QueryBuilders.matchQuery("tag","A")) 
.should(QueryBuilders.matchQuery("tag","B")) 

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery() 
.must(aOrB); 
.must(QueryBuilders.matchQuery("name","cat"));