我需要在多个字段上聚合Elastic Search。
我有一个名为Working days的嵌套字段,下面是相同的Map。
"workingDays": {
"type": "nested",
"properties": {
"mon": {
"type": "nested",
"properties": {
"availability": {
"type": "boolean"
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"notes": {
"type": "text"
}
}
},
"tue": {
"type": "nested",
"properties": {
"availability": {
"type": "boolean"
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"notes": {
"type": "text"
}
}
}
}
}
以这种方式,Map持续所有的日子。
现在,数据如下所示
"workingdays": {
"mon": {
"availability": true,
"title": "Monday",
"notes": ""
},
"tue": {
"title": "Tuesday",
"notes": "On Tuesdays, drop off and pick up times must be scheduled between 12pm to 2pm",
"availability": false
}
}
所以,我的要求如下。我需要汇总并得出在特定日期可用的所有数据,类似于此。
"buckets": [
{
"key": "Monday",
"doc_count": 3
},
{
"key": "Tuesday",
"doc_count": 5
}
]
我尝试过嵌套聚合、组合聚合和多字段聚合,但它们都没有产生可用的格式。
1条答案
按热度按时间g6ll5ycj1#
您可以在嵌套聚合的filter aggregation内部使用nested aggregations:)。
注意:区分大小写!!请仔细检查是否使用
workingDays
或workingdays
。