我有一些包含许多字段的文档,我想查找在特定小时后插入的文档数,这可以通过使用范围查询来完成,但在所有文档字段中我想要显示唯一的时间戳字段。
我使用了以下查询
{
"_source": [
"fields.Timestamp"
],
"aggs": {
"last_5_mins": {
"filter": {
"range": {
"fields.Timestamp": {
"gt": "2017-02-10T10:07:04.4367673Z"
}
}
}
}
}
}
当我看到输出时,我没有获得匹配文档的时间戳,而是获得了与我的查询不匹配的文档。
MY输出:
"hits": {
"total": 6,
"max_score": 1,
"hits": [
{
"_index": "matrix",
"_type": "neo",
"_id": "5",
"_score": 1,
"_source": {
}
},
{
"_index": "matrix",
"_type": "neo",
"_id": "2",
"_score": 1,
"_source": {
"fields": {
"Timestamp": "2017-02-10T10:07:04.4367673Z"
}
}
},
{
"_index": "matrix",
"_type": "neo",
"_id": "4",
"_score": 1,
"_source": {
"fields": {
"Timestamp": "2017-02-10T10:07:04.4836472Z"
}
}
},
{
"_index": "matrix",
"_type": "neo",
"_id": "6",
"_score": 1,
"_source": {
}
},
{
"_index": "matrix",
"_type": "neo",
"_id": "1",
"_score": 1,
"_source": {
"fields": {
"Timestamp": "2017-02-10T10:07:04.4367673Z"
}
}
},
{
"_index": "matrix",
"_type": "neo",
"_id": "3",
"_score": 1,
"_source": {
"fields": {
"Timestamp": "2017-02-10T10:07:12.1147415Z"
}
}
}
]
},
"aggregations": {
"last_5_mins": {
"doc_count": 2
}
}
}
如何获取匹配文档的时间戳? 感谢..
答案 0 :(得分:0)
您不需要使用聚合,只需在查询部分中移动range
查询即可:
{
"_source": [
"fields.Timestamp"
],
"query": {
"bool": {
"filter": {
"range": {
"fields.Timestamp": {
"gt": "2017-02-10T10:07:04.4367673Z"
}
}
}
}
}
}