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中合并,并且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 execution modeand查询

关于elasticsearch - NotQueryBuilder elasticsearch 2.4执行模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571400/

相关文章:

elasticsearch - 如何从elasticsearch标记器中删除一个定界符?

java - Elasticsearch Java API : Object mapping for [eventDefinitions] tried to parse field [null] as object, 但找到了具体值?

powershell - 需要curl命令到ElasticSearch for PowerShell

c# - Elasticsearch NEST 2.0 无法通过 ID 删除对象

elasticsearch - 使用本地网关索引内存存储的陷阱

elasticsearch - Elastic Search中的 bool 查询或过滤查询

elasticsearch - Elasticsearch 聚合分页问题

Elasticsearch 多个聚合不起作用

ElasticSearch 内容 ACL 过滤性能

elasticsearch - Kafka Connect使用(json)消息中的字段将主题持久化到Elasticsearch索引