elasticsearch NotQueryBuilder elasticsearch 2.4执行模式
弹性搜索2.4中的.execution(“and”)的替代方案是什么?它的具体用途是什么——
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中合并,并且执行模式仅在过滤器上下文中有用,因此不再需要术语查询中的执行参数 所以如果你想
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
过滤器,该过滤器包含一个术语
查询