云搜索服务 CSS-配置OpenSearch集群聚合增强:低基字段聚合
低基字段聚合
低基字段一般采用分组聚合,在排序的情况下具备较好的数据聚簇性,利于向量化批量处理数据。
- 执行如下命令,设置索引testindex。
PUT testindex { "mappings": { "properties": { "date": { "type": "date", "format": "yyyy-MM-dd" }, "city": { "type": "keyword" }, "product": { "type": "keyword" }, "trade": { "type": "double" } } }, "settings": { "index": { "search": { "turbo": { "enabled": "true" } }, "sort": { "field": [ "city", "product" ] }, "cluster": { "field": [ "city", "product" ] } } } }
表2 低基字段聚合参数说明 参数
参数类型
描述
index.search.turbo.enabled
Boolean
是否启用聚合增强能力。使用聚合分析时必须启用聚合增强能力。
取值范围:
- false(默认值):不启用聚合增强。
- true:启用聚合增强。
index.sort.field
Array of strings
指定排序键。排序键用于定义文档排序所依据的字段。
在配置排序键时,可以指定一个或多个字段。当多个字段被指定时,排序将按照字段的顺序依次进行。第一个字段的排序结果将作为主要排序依据,第二个字段则在第一个字段排序结果的基础上进行次级排序,以此类推。
取值范围:必须是索引包含的字段。
index.cluster.field
Array of strings
指定聚簇键。聚簇键用于对文档进行聚簇处理,具有相同键值的文档会被归类到同一聚簇中。
在进行聚合操作时,同一聚簇内的文档能够被批量处理,从而显著提升聚合性能。
约束限制:聚簇键必须是排序键的前缀子集。
取值范围:必须是索引包含的字段。
- 执行如下命令,导入样例数据。
PUT /_bulk { "index": { "_index": "testindex", "_id": "1" } } { "date": "2025-01-01", "city": "cityA", "product": "books", "trade": 3000.0} { "index": { "_index": "testindex", "_id": "2" } } { "date": "2025-01-02", "city": "cityA", "product": "books", "trade": 1000.0} { "index": { "_index": "testindex", "_id": "3" } } { "date": "2025-01-01", "city": "cityA", "product": "bottles", "trade": 100.0} { "index": { "_index": "testindex", "_id": "4" } } { "date": "2025-01-02", "city": "cityA", "product": "bottles", "trade": 300.0} { "index": { "_index": "testindex", "_id": "5" } } { "date": "2025-01-01", "city": "cityB", "product": "books", "trade": 7000.0} { "index": { "_index": "testindex", "_id": "6" } } { "date": "2025-01-02", "city": "cityB", "product": "books", "trade": 1000.0}
- 执行查询命令,实现低基字段聚合查询。
POST testindex/_search { "size": 0, "aggs": { "groupby_city": { "terms": { "field": "city" }, "aggs": { "groupby_product": { "terms": { "field": "product" }, "aggs": { "avg_trade": { "avg": { "field": "trade" } } } } } } } }