我的数据中有一个日期字段。我对它进行了日期直方图聚合,间隔设置为月份。现在它返回,每月的文件数,间隔。 这是我使用的查询:
{
"aggs": {
"dateHistogram": {
"date_histogram": {
"field": "currentDate",
"interval": "day"
}
}
}
}
低于我收到的确切回复。
{
"aggregations": {
"dateHistogram": {
"buckets": [{
"key_as_string": "2015-05-06",
"key": 1430870400000,
"doc_count": 10
}, {
"key_as_string": "2015-04-06",
"key": 1430870500000,
"doc_count": 14
}]
}
}
}
从上面的回复中可以清楚地看到,密钥“1430870400000”下有10个文件,密钥“1430870500000”下有14个文件。但是,尽管文档计数,但未显示单个文档。我希望它们能够显示在响应中,以便我可以从中获取值。我如何在elasticsearch中实现这一目标?
答案 0 :(得分:1)
这方面的简单方法是使用“top-hits”聚合。你可以找到“top-hits”here
的用法热门命中聚合将为您提供已完成聚合的相关数据,还有一些选项可指定您要获取的结果,以及您想要获取的数据大小以及排序选项。
答案 1 :(得分:0)
根据我的理解,您希望获取所有文档并将这些文档用于aggregations
,因此您应该使用匹配查询和聚合,如下所示:
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
},
"aggs": {
"date_wise_logs_counts": {
"date_histogram": {
"field": "currentDate",
"interval": "day"
}
}
}
}
以上10
中的返回默认hit array
文档,使用size size=BIGNUMBER
获取超过10个项目。 (其中BIGNUMBER等于您认为比您的数据集更大的数字)。但您应该使用scan and scroll代替size