使用Elasticsearch 5.2,我存储了大约20k个地理点。
我想查询所有这些内容,以便在Google地图中显示它们。但是,正如文档中所指定的,限制大小似乎是10k(我得到错误Result window is too large, from + size must be less than or equal to: [10000] but was [20000]
。
是否有解决方法可以获得所有积分?
我使用的查询是:
{
"size":10000,
"_source": ["geo"],
"query": {
"bool": {
"must" : [
{ "term" : { myId" : 1234 } },
{
"range" :{
"@timestamp" : {
"gte" : "now-10m"
}
}
}
]
}
}
}
答案 0 :(得分:0)
要获得较大的结果集,您可以使用scroll and scan api
可以分两步完成。
首先 - 搜索查询添加滚动
POST /index_name/type_name/_search?scroll=1m
{
"size": 100,
"query": {
"match_all": {}
}
}
这将返回滚动ID。使用滚动ID,您可以重复调用以下内容,每次获得100(大小)结果。
POST /_search/scroll
{
"scroll" : "1m",
"scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}