FilteredQueryBuilder和QueryFilterBuilder有什么区别,因为自2.0以来它们都被弃用,而FilteredQueryBuilder的替代java代码
FilteredQueryBuilder filteredQueryBuilder = QueryBuilders.filteredQuery(termsQueryBuilder, null);
QueryFilterBuilder queryFilterBuilder = FilterBuilders.queryFilter(esQueryBuilder);
答案 0 :(得分:5)
由于现在已经合并了查询和过滤器,因此这些构造不再有意义。
FilteredQueryBuilder
用于创建filtered
query,即由一组过滤器约束的得分查询。您现在应该使用
FilteredQueryBuilder
bool/filter
QueryBuilders.boolQuery().filter(...)
bool/must_not
创建的QueryBuilders.boolQuery().mustNot(...)
,如果您需要否定过滤器 QueryFilterBuilder
用于创建query
filter,即过滤后的上下文中的非评分查询。现在应该
QueryFilterBuilder
bool/must
创建的QueryBuilders.boolQuery().must(...)
查询
bool/should
创建的QueryBuilders.boolQuery().should(...)
,如果您需要或您的查询答案 1 :(得分:0)
根据Compound queries -> Bool query,您应该实现过滤器al bool 查询。
QueryBuilder qb = boolQuery()
.must(termQuery("content", "test1"))
.must(termQuery("content", "test4"))
.mustNot(termQuery("content", "test2"))
.should(termQuery("content", "test3"))
.filter(termQuery("content", "test5"));