Elasticsearch 术语查询大小以包含一些术语

Elasticsearch terms query size to include some terms

Elasticsearch 文档显示了以下大小示例,包括

GET /_search
{
  "aggs": {
    "JapaneseCars": {
      "terms": {
        "field": "make",
        "size": 10
        "include": [ "mazda", "honda" ]
      }
    }
  }
}

但这里的“include”仅在结果中包含“mazda”和“honda”,我希望结果包含这 2 个以及基于 doc_count 的其他结果,因为我在查询中使用了尺寸,是否存在有什么办法可以做到这一点。

您可以跳过 include 关键词:

GET /_search
{
  "aggs": {
    "JapaneseCars": {
      "terms": {
        "field": "make",
        "size": 10
      }
    }
  }
}

terms 聚合始终 return 个具有最多文档数的桶。

您不能将聚合定义为始终包括某些指定键的存储桶和其他顶级存储桶。

但是您可以在您的应用程序中定义两个单独的聚合和合并桶

GET /_search
{
  "aggs": {
    "JapaneseCars": {
      "terms": {
        "field": "make",
        "include": [ "mazda", "honda" ]
      }
    },
    "OtherCars": {
      "terms": {
        "field": "make",
        "exclude": [ "mazda", "honda" ]
      }
    },
  }
}