按多个字段聚合,并在ElasticSearch中计算前10个问题和答案



当我们为少数记录执行记录时,只有问题出现,而不是显示每个问题的答案在数据库中,我们有所有问题的答案。请让我知道查询,以获得前10名记录的问题和答案。以下是错误。

是否获取logstash sdc问题记录/搜索?q=来源:网站门户

{
"aggs": {
"genres": {
"terms": {
"field": "question.keyword",
"order": {
"_count": "desc"
},
"size": 10
},
"aggs": {
"genres": {
"terms": {
"field": "answer.keyword",
"order": {
"_count": "desc"
},
"size": 10
}
}
}
}
}
}

在此处输入图像描述

我从你的问题中了解到,你需要显示前10个问题及其答案,为了实现这一点,你需要使用子聚合,热门搜索将解决你的用例,而目前你使用的是两个不同的顶级术语聚合。

您的搜索查询应该如下所示

{
"aggs": {
"genres": {
"terms": {
"field": "question.keyword",
"size": 10
},
"aggs": {
"top_answer_hits": {
"top_hits": {
"size": 1,
"_source": {
"includes": [
"answer"
]
}
}
}
}
}
}
}

最新更新