Elasticsearch 中的复杂布尔查询

Complex bool queries in Elasticsearch

如何为这种匹配构建查询?

(name="Adam" OR name="Bob) OR (age=21 && email="email@gmail.com")

我应该如何"merge"括号内的表达式与OR运算

BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery()
.should(QueryBuilders.matchQuery("name","Adam"))
.should(QueryBuilders.matchQuery("name","Bob"));

BoolQueryBuilder queryBuilder2 = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("age","21"))
.must(QueryBuilders.matchQuery("email","email@gmail.com"));

您可以使用

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery().should(queryBuilder1).should(queryBuilder2)

这将充当或介于两个 QueryBuilders