2017-02-09 74 views
0

使用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

你試過[滾動和掃描api](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html)嗎?這會給你所有的結果,但不是在一個查詢中。 – pratikvasa

+0

我不知道這個卷軸api。我會看看,謝謝! – Romain

回答

0

爲了得到一個大的結果集,你可以使用scroll and scan API

它可以分兩步來完成。

第一 - 牛逼o您搜索查詢添加滾動

POST /index_name/type_name/_search?scroll=1m 
{ 
    "size": 100, 
    "query": { 
     "match_all": {} 
    } 
} 

這將返回一個滾動ID。使用滾動ID您可以重複調用以下每次獲得100(大小)的結果。

POST /_search/scroll 
{ 
    "scroll" : "1m", 
    "scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==" 
}