我正在尝试编写一些Java代码来查询ES5实例。在ES1中,您可以使用OR和AND过滤器,orFilter和andFilter。 ES5中的等效功能是什么?我努力了 -
QueryBuilder fb1 = QueryBuilders.termQuery("term1", "value1");
QueryBuilder fb2 = QueryBuilders.termQuery("term1", "value2");
QueryBuilder fb3 = QueryBuilders.termQuery("term2", "value3");
QueryBuilder fb = QueryBuilders.boolQuery()
.must(fb1)
.should(fb2)
This gives results that match fb1, so this is not an OR
QueryBuilder fb = QueryBuilders.boolQuery()
.must(fb1)
.must(fb2)
This gives no results, so the AND worked.
我想弄清楚构造AND,或OR查询的方式
最佳答案
为了进行AND查询,请将所有条件置于“必须”中。
QueryBuilder fb = QueryBuilders.boolQuery().must(fb1).must(fb2);
为了进行OR查询,请将所有条件置于“应该”中。
QueryBuilder fb = QueryBuilders.boolQuery().should(fb1).should(fb2);