es查询nested类型聚合语法
时间: 2024-06-28 22:00:18 浏览: 125
在Elasticsearch中,`nested`类型用于表示嵌套的数据结构,例如文章中的评论或产品中的属性。当你需要对这些嵌套数据进行查询和聚合时,会用到特定的聚合语法。`nested`类型的聚合通常与`aggs`(聚合)和`bucket_sort`(桶排序)配合使用。
`nested`聚合的基本语法如下:
```json
{
"aggs": {
"nested_agg": {
"nested": { "path": "parent_field" }, // "parent_field"是你嵌套数据所在的上级字段名
"aggs": {
"child_agg": { ... } // 这里是你对嵌套数据的子聚合,如`terms`、`avg`等
}
}
}
}
```
例如,假设你有一个文档模型,其中包含一个`comments`字段,每个评论都有`author`和`text`字段,你可以这样进行聚合:
```json
{
"aggs": {
"by_author": {
"nested": { "path": "comments" },
"aggs": {
"top_comments": {
"top_hits": {
"_source": ["author", "text"],
"size": 1 // 取出每个作者的最新一条评论
}
}
}
}
}
}
```
这将返回每个作者及其最新的评论。
阅读全文