elasticsearch - 同一字段的 Elasticsearch 多个过滤器值

标签 elasticsearch elasticsearch-7

假设我必须在 Elastic Search Index (ES 7.15) 中过滤汽车构造函数,其中字段 car_maker映射到 keyword ,在汽车制造商字符串名称中具有有限数量的可能性:

{
    "mappings": {
        "properties": {
            "car_maker": {
                "type": "keyword"
            }
        }
    }
}

GET /cars/_search
{

    "query": {
        "bool": {
            "filter": [{
                "term": {
                    "car_maker": "Honda"
                }
            }]
        }
    }
}
这与匹配的查询一起可以正常工作。 filter不会按要求参与评分计算。
现在我想为该查询过滤更多汽车制造商(假设是 should 查询):
{
 "query": {
    "bool": {
        "filter" : [
            {"term" : { "car_maker" : "Honda"}},
            {"term" : { "car_maker" : "Ferrari"}}
        ]
    }
 }
}
这是行不通的。 ES查询引擎会出现任何错误,但也会有任何结果。当然总是可以将更多过滤器应用于不同的领域,如 car_makercar_color ,但如何做相反的事情:将更多值( HondaFerrari 等)应用于相同的过滤器字段 car_maker像上面的例子一样,没有调节分数计算?

最佳答案

您可能想尝试以下过滤器查询:

{
  "query" : {
    "bool" : {
      "filter" : {
        "terms" : {
          "car_maker" : ["Honda", "Ferrari"]
        }
      }
    }
  }
}

关于elasticsearch - 同一字段的 Elasticsearch 多个过滤器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69677413/

相关文章:

java - Spring Data Elasticsearch 与 ES 7.2.1 |索引时 GeoPoint 映射失败

apache - Elasticsearch :匹配词组产生不必要的结果

elasticsearch - Kibana无法启动通过HTTP配置的Shield

具有变量值的 ElasticSearch 搜索结果

configuration - "master_not_discovered_exception"尝试在远程服务器上配置 Elasticsearch 时

Elasticsearch 术语聚合性能

elasticsearch - 如何在Elasticsearch中使用短语提示器?

ruby-on-rails - 如何在 elasticsearch 的同一字段上使用多个查询进行搜索?

php - OR和And不能按预期工作

java - 获取所有记录,包括特定字段