Link Search Menu Expand Document Documentation Menu

多词项聚合

terms 桶聚合类似,你也可以使用 multi_terms 聚合来搜索多个词项。多词项聚合在你需要按文档计数排序,或者需要按复合键上的指标聚合排序并获取前 n 个结果时非常有用。例如,你可以搜索特定数量的文档(例如 1000 个)以及每个位置显示 CPU 使用率超过 90% 的服务器数量。此多词项查询将返回排名靠前的结果。

multi_terms 聚合比 terms 聚合消耗更多的内存,因此其性能可能会更慢。

多词项聚合参数

参数 描述
multi_terms 表示一个多词项聚合,它根据多个词项指定的条件将文档桶聚集在一起。
size 指定要返回的桶数量。默认为 10。
顺序 指示桶的排序顺序。默认情况下,桶按照每个桶的文档计数排序。如果桶包含相同的文档计数,则 order 可以显式设置为词项值而不是文档计数。(例如,将 order 设置为“max-cpu”)。
doc_count 指定每个桶中要返回的文档数量。默认情况下,返回前 10 个词项。

请求示例

GET sample-index100/_search
{
  "size": 0, 
  "aggs": {
    "hot": {
      "multi_terms": {
        "terms": [{
          "field": "region" 
        },{
          "field": "host" 
        }],
        "order": [{
          "max-cpu": "desc"
        },{
          "max-memory": "desc"
        }]
      },
      "aggs": {
        "max-cpu": { "max": { "field": "cpu" } },
        "max-memory": { "max": { "field": "memory" } }
      }      
    }
  }
}

示例响应

{
  "took": 118,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 8,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "multi-terms": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": [
            "dub",
            "h1"
          ],
          "key_as_string": "dub|h1",
          "doc_count": 2,
          "max-cpu": {
            "value": 90.0
          },
          "max-memory": {
            "value": 50.0
          }
        },
        {
          "key": [
            "dub1",
            "h1"
          ],
          "key_as_string": "dub|h1",
          "doc_count": 2,
          "max-cpu": {
            "value": 90.0
          },
          "max-memory": {
            "value": 40.0
          }
        },
        {
          "key": [
            "dub",
            "h2"
          ],
          "key_as_string": "dub|h2",
          "doc_count": 2,
          "max-cpu": {
            "value": 70.0
          },
          "max-memory": {
            "value": 90.0
          }
        },
        {
          "key": [
            "iad",
            "h2"
          ],
          "key_as_string": "iad|h2",
          "doc_count": 2,
          "max-cpu": {
            "value": 50.0
          },
          "max-memory": {
            "value": 50.0
          }
        },
        {
          "key": [
            "iad",
            "h1"
          ],
          "key_as_string": "iad|h1",
          "doc_count": 2,
          "max-cpu": {
            "value": 15.0
          },
          "max-memory": {
            "value": 20.0
          }
        }
      ]
    }
  }
}
剩余 350 字符

有问题?

想要贡献?