elasticsearch NotQueryBuilder elasticsearch 2.4执行模式,elasticsearch,elasticsearch" /> elasticsearch NotQueryBuilder elasticsearch 2.4执行模式,elasticsearch,elasticsearch" />

elasticsearch NotQueryBuilder elasticsearch 2.4执行模式

elasticsearch NotQueryBuilder elasticsearch 2.4执行模式,elasticsearch,elasticsearch,弹性搜索2.4中的.execution(“and”)的替代方案是什么?它的具体用途是什么—— NotFilterBuilder excVariantsFilter = FilterBuilders.notFilter(FilterBuilders.termsFilter("products", productIds.toArray()).execution("and")); 过滤器和查询已在ES 2.0中合并,并且执行模式仅在过滤器上下文中有用,因此不再需要术语查询中的执行参数 所以如果你想

弹性搜索2.4中的.execution(“and”)的替代方案是什么?它的具体用途是什么——

 NotFilterBuilder excVariantsFilter = FilterBuilders.notFilter(FilterBuilders.termsFilter("products", productIds.toArray()).execution("and"));

过滤器和查询已在ES 2.0中合并,并且
执行
模式仅在过滤器上下文中有用,因此不再需要
术语
查询中的
执行
参数

所以如果你想要一个与此等价的行为

NotFilterBuilder excVariantsFilter = FilterBuilders.notFilter(FilterBuilders.termsFilter("products", productIds.toArray()).execution("and"));
您现在可以这样写:

BoolQueryBuilder excVariantsFilter = QueryBuilders.boolQuery();
for (String productId : productIds.toArray()) {
    excVariantsFilter.mustNot(QueryBuilders.termQuery("products", productId));
}
它将为每个
productId
生成一个
bool/must\u not
查询,其中包含一个
术语
查询,这相当于前面的
not
过滤器,该过滤器包含一个
术语
查询