【发布时间】:2018-03-09 19:11:02
【问题描述】:
我正在尝试使用 DSL 查询来搜索索引。我有许多符合日志标准和时间戳范围的文档。
我正在传递日期并将其转换为纪元毫秒。
但是我在 DSL 查询中指定了 size 参数。
我看到的是,如果我指定 5000,它会在时间范围内提取 5000 条记录。但指定时间范围内的记录数较多。
如何检索与时间范围匹配的所有数据,以便我不需要指定大小?
我的 DSL 查询如下。
GET localhost:9200/_search
{
"query": {
"bool": {
"must": [
{"match_phrase": {
"log": "SOME_VALUE"
}
},
{"range": {
"@timestamp": {
"gte": "'"${fromDate}"'",
"lte": "'"${toDate}"'",
"format": "epoch_millis"
}
}
}
]
}
},
"size":5000
}
从日期 = 1519842600000
toDate = 1520533800000
【问题讨论】:
-
不,这不是重复的……我已经看到了。它提到了如何检索所有数据,它没有条件或附加参数,甚至没有大小参数。
-
您应该查看扫描和滚动 API 以实现您想要的,如上述问题中的答案所示。
-
Scroll 将查看我们指定的时间以使内容处于活动状态。我试过了,但如果没有指定大小,它会命中 5 次。那也解决不了问题..
标签: elasticsearch elasticsearch-dsl