更新时间:2024-04-18 GMT+08:00
分享

低基高基字段混合

对于低基字段和高基字段混合的场景,假如有如下查询语句:

POST testindex/_search
{
  "size": 0,
  "aggs": {
    "groupby_region": {
      "terms": {
        "field": "region"
      },
      "aggs": {
        "groupby_host": {
          "terms": {
            "field": "host"
          },
          "aggs": {
            "groupby_timestamp": {
              "date_histogram": {
                "field": "timestamp",
                "interval": "day"
              },
              "aggs": {
                "avg_score": {
                  "avg": {
                    "field": "score"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

先对低基字段做分组,然后再对高基字段做直方图,如果要对上述查询使用聚合增强特性,那么设置如下:

  • 聚簇键是排序键的前缀子集。
  • 高基字段必须在排序键中,且高基字段必须在最后一个低基字段后面。
// 索引设置
"settings" : {
    "index" : {
        "search" : {
            "turbo" : {
                "enabled" : "true" // 开启优化
            }
        },
        "sort" : { // 指定排序键
            "field" : [
                "region",
                "host",
                "timestamp",
                "other"
            ]
        },
        "cluster" : {
            "field" : [ // 指定聚簇键
                "region",
                "host"
            ]
        }
    }
}
分享:

    相关文档

    相关产品