如何在聚合中获取特定的_source字段
How to get specific _source fields in aggregation
我正在探索 ElasticSearch,用于处理大量数据并生成一些统计结果的应用程序。我的要求是检索特定字段的某些统计信息。例如,对于给定的字段,我想检索它的唯一值和每个值的文档频率,以及值的长度。值长度与每个文档一起编入索引。
到目前为止,我已经通过以下查询对 Terms Aggregation
进行了试验:
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100
}
}
}
}
查询returns字段val
中的所有值以及每个值出现的文档数。我希望字段 val_len
也被返回。是否可以使用 ElasticSearch 实现此目的?换句话说,是否可以在存储桶中包含特定的 _source
字段?我已经查看了在线提供的文档,但还没有找到解决方案。
希望有人能指出我正确的方向。提前致谢!
我尝试按以下方式包含 _source
:
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100
},
"_source":["val_len"]
}
}
和
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100,
"_source":["val_len"]
}
}
}
但我想这不是正确的方法,因为两者都给了我解析错误。
您需要使用另一个名为 top_hits
的子聚合,如下所示:
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100
},
"aggs": {
"hits": {
"top_hits": {
"_source":["val_len"],
"size": 1
}
}
}
}
}
另一种方法是使用另一个 avg
子聚合,这样您也可以对其进行排序
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100,
"order": {
"length": "desc"
}
},
"aggs": {
"length": {
"avg": {
"field": "val_len"
}
}
}
}
}
我正在探索 ElasticSearch,用于处理大量数据并生成一些统计结果的应用程序。我的要求是检索特定字段的某些统计信息。例如,对于给定的字段,我想检索它的唯一值和每个值的文档频率,以及值的长度。值长度与每个文档一起编入索引。
到目前为止,我已经通过以下查询对 Terms Aggregation
进行了试验:
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100
}
}
}
}
查询returns字段val
中的所有值以及每个值出现的文档数。我希望字段 val_len
也被返回。是否可以使用 ElasticSearch 实现此目的?换句话说,是否可以在存储桶中包含特定的 _source
字段?我已经查看了在线提供的文档,但还没有找到解决方案。
希望有人能指出我正确的方向。提前致谢!
我尝试按以下方式包含 _source
:
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100
},
"_source":["val_len"]
}
}
和
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100,
"_source":["val_len"]
}
}
}
但我想这不是正确的方法,因为两者都给了我解析错误。
您需要使用另一个名为 top_hits
的子聚合,如下所示:
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100
},
"aggs": {
"hits": {
"top_hits": {
"_source":["val_len"],
"size": 1
}
}
}
}
}
另一种方法是使用另一个 avg
子聚合,这样您也可以对其进行排序
"aggs": {
"type_count": {
"terms": {
"field": "val.keyword",
"size": 100,
"order": {
"length": "desc"
}
},
"aggs": {
"length": {
"avg": {
"field": "val_len"
}
}
}
}
}