弹性搜索2.4中.execution("和")的替代方法是什么?究竟是什么用途 -
NotFilterBuilder excVariantsFilter = FilterBuilders.notFilter(FilterBuilders.termsFilter("products", productIds.toArray()).execution("and"));
答案 0 :(得分:1)
过滤器和查询已在ES 2.0中合并,而execution
模式仅在过滤器上下文中有用,因此execution
中的terms
参数不再需要}查询。
所以,如果你想要一个等效的行为
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));
}
它会生成一个bool/must_not
个查询,其中包含term
个productId
查询,该查询等同于包含not
查询的前一个terms
过滤器and
execution mode