地理位置限制

时间:2017-02-09 13:20:41

标签: elasticsearch geopoints

使用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"
                        }
                    }
                }
            ]
        }
    }
}

1 个答案:

答案 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==" 
}