【发布时间】:2019-04-11 18:42:25
【问题描述】:
我正在尝试创建一个 ElasticSearch 聚合查询,它可以在我所有摄取的文档中生成总和或平均值。
文件的格式为 -
{
"weather":"cold",
"date_1":"2017/07/05",
"feedback":[
{
"date_2":"2017/08/07",
"value":28,
"comment":"not cold"
},{
"date_2":"2017/08/09",
"value":48,
"comment":"a bit chilly"
},{
"date_2":"2017/09/07",
"value":18,
"comment":"very cold"
}, ...
]
}
我可以通过以下请求使用“date_1”创建所有“feedback.value”的总和聚合 -
GET _search
{
"query": {
"query_string": {
"query": "cold"
}
},
"size": 0,
"aggs": {
"temperature": {
"date_histogram":{
"field" : "date_1",
"interval" : "month"
},
"aggs":{
"temperature_agg":{
"terms": {
"field": "feedback.value"
}
}
}
}
}
}
但是,我需要在基于“feedback.date_2”的所有文档聚合中生成相同的查询。我不确定 ElasticSearch 是否可以解决这种聚合或如何处理它。任何指导都会有所帮助
[编辑] 映射文件(我只定义嵌套项,ES自己识别其他字段)
{
"mappings": {
"catalog_item": {
"properties": {
"feedback":{
"type":"nested",
"properties":{
"date_2":{
"type": "date",
"format":"YYYY-MM-DD"
},
"value": {
"type": "float"
},
"comment": {
"type": "text"
}
}
}
}
}
}
}
【问题讨论】:
-
你能粘贴你的映射吗?
-
在编辑中添加了映射文件
-
更新了我的答案。让我知道这是否是您的目标。
-
谢谢,但我想通过“feedback.date_2”对“feedback.value”进行总和/平均聚合。如我的帖子所示,我能够按“date_1”进行汇总。
标签: elasticsearch elasticsearch-aggregation