elasticsearch ElasticSearch:嵌套字段和聚合
我看到一些关于嵌套字段和聚合的帖子,但似乎没有一篇能够回答我的问题。所以,如果这是一个重复的问题,请原谅,任何帮助都将不胜感激 我们建立了一个讲座索引,讲座具有以下特点:elasticsearch ElasticSearch:嵌套字段和聚合,elasticsearch,search,elasticsearch,Search,我看到一些关于嵌套字段和聚合的帖子,但似乎没有一篇能够回答我的问题。所以,如果这是一个重复的问题,请原谅,任何帮助都将不胜感激 我们建立了一个讲座索引,讲座具有以下特点: 讲座可以亲自(现场)或预先录制(在线) 每堂课可以有多个章节 这些章节中的每一章都可以由不同的讲师讲授(例如:量子物理的第1章可以由五位不同的讲师讲授,其中三位可能是现场讲师,另外两位可能是在线讲师) 在线讲座将始终为每位讲师、每章、每种质量提供一个条目 大致结构如下: { "topics": [ {
- 讲座可以亲自(现场)或预先录制(在线)
- 每堂课可以有多个章节
- 这些章节中的每一章都可以由不同的讲师讲授(例如:量子物理的第1章可以由五位不同的讲师讲授,其中三位可能是现场讲师,另外两位可能是在线讲师)
- 在线讲座将始终为每位讲师、每章、每种质量提供一个条目
{
"topics": [
{
"id": "TOP1",
"chapters": [
{
"chapterId": 12345,
"availability": [
{
"type": "LIVE",
"lecturer": "Dr. Abraham Fisher",
"lectureChapterId": "861731",
"availableFrom": "2017-09-11 13:00:00",
"expiresAt": "2017-09-11 15:00:00",
"lecturerIds": [
"MON121",
"MEL122"
]
},
{
"type": "LIVE",
"lecturer": "Dr. Bob Fisher",
"lectureChapterId": "181751",
"availableFrom": "2017-09-11 20:00:00",
"expiresAt": "2017-09-11 22:00:00",
"lecturerIds": [
"MON122",
"MEL123"
]
},
{
"type": "LIVE",
"lecturer": "Dr. Bob Fisher",
"lectureChapterId": "181751",
"availableFrom": "2017-09-17 20:00:00",
"expiresAt": "2017-09-17 22:00:00",
"lecturerIds": [
"MON122",
"MEL123"
]
},
{
"type": "LIVE",
"lecturer": "Dr. Abraham Fisher",
"lectureChapterId": "861731",
"availableFrom": "2017-09-17 13:00:00",
"expiresAt": "2017-09-17 15:00:00",
"lecturerIds": [
"MON121",
"MEL122"
]
},
{
"type": "ONLINE",
"quality" : "HD",
"price" : 19.99,
"lecturer": "Dr. Catherine Fisher",
"lectureChapterId": "9127312",
"availableFrom": "2017-01-17 00:00:00",
"expiresAt": "2017-12-31 23:59:59",
"lecturerIds": [
"MON120",
"MEL120"
]
},
{
"type": "ONLINE",
"quality" : "SD",
"price" : 10.99,
"lecturer": "Dr. Catherine Fisher",
"lectureChapterId": "9127312",
"availableFrom": "2017-01-17 00:00:00",
"expiresAt": "2017-12-31 23:59:59",
"lecturerIds": [
"MON120",
"MEL120"
]
}
]
}
]
}
]
}
现在,如果要求只返回按章节分组的第一个可用讲座的详细信息,现场讲座的讲师,并返回所有在线讲座(以及讲座主题的其他元数据),那么最好的方法是什么?在上面的例子中,9月11日亚伯拉罕·费舍尔博士和鲍勃·费舍尔博士的讲座应该退回
我尝试使用内部点击,但显然,它不允许聚合(我得到以下错误)
附言:聚合需要在章节级别,而不是讲座主题(根)级别。你能发布你的查询吗?对于嵌套字段的聚合,始终需要指定嵌套路径。看 我不知道您的完整数据模型,但是如果您可以控制文档结构,并且只需要用于搜索,那么您可以尝试通过反规范化将其展平一点
"[nested] query does not support [aggs]"