如何使用Java Api在ElasticSearch中执行布尔查询?
我正试图发送一个针对elasticSearch的bool查询,它过滤掉了文档。如何使用Java中的BooleanQueryBuilderAPI过滤布尔表达式,如(A、B和C)和(D或E或F)和G?我尝试了过滤方法,但没有得到任何结果。例如:
例如,假设A、B、C、D、E、F、G是属性“name”必须与“Robin”匹配的事件
private QueryBuilder getQueryBuilder() {
BoolQueryBuilder boolQueryBuilder1 = QueryBuilders
.boolQuery()
.filter(QueryBuilders.matchQuery(D).operator(Operator.OR))
.filter(QueryBuilders.matchQuery(E).operator(Operator.OR))
.filter(F);
BoolQueryBuilder boolQueryBuilder2 = QueryBuilders
.boolQuery()
.filter(QueryBuilders.matchQuery(A).operator(Operator.AND))
.filter(QueryBuilders.matchQuery(B).operator(Operator.AND))
.filter(QueryBuilders.matchQuery(C));
BoolQueryBuilder boolQueryBuilder3 = QueryBuilders
.boolQuery()
.filter(G);
BoolQueryBuilder boolQueryBuilder = QueryBuilders
.boolQuery()
.filter(boolQueryBuilder1)
.filter(boolQueryBuilder2)
.filter(boolQueryBuilder3);
return boolQueryBuilder;
}
我知道这个例子不是很好,但我希望你能帮助我! 谢谢
# 1 楼答案
是这个吗