我們從Elasticsearch 2.1中檢索信息並允許用戶查看結果。當用戶請求高頁碼,我們得到了以下錯誤消息:Elasticsearch 2.1:結果窗口太大(index.max_result_window)
結果窗口過大,從+大小必須小於或等於 到:[10000]但[10020]。請參閱滾動API以獲得更高效的請求大型數據集的方式。此限制可通過改變設置的 [index.max_result_window]索引等級參數
彈性實況說,這是因爲高存儲器消耗和使用滾動API:
值更高比可以消耗大量的堆內存每 搜索和每個碎片執行搜索。這是最安全的離開這個 值,因爲它是一個用於任何滾動API深滾動https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits
的事情是,我不想檢索大型數據集。我只想從結果集中非常高的數據集中檢索切片。另外,滾動實況說:
滾動不用於實時用戶請求https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html
這給我留下了一些問題:
1)請問內存的消耗實在是低(任如果是這樣的話)爲什麼如果我使用滾動api滾動到結果10020(並忽略低於10000的所有內容),而不是對結果10000-10020執行「正常」搜索請求?
2)似乎沒有滾動API是我的選擇,但我不得不增加「index.max_result_window」。有人對這個有經驗麼?
3)有沒有其他的選擇來解決我的問題?
所以在這裏,我們應該放棄深度分頁,對吧?基本上,對於單個查看器來說,不存在分頁4000頁的含義。比方說,谷歌搜索,我們很難滾動到第8或第9頁檢查結果。通常我們只關注Google給我們的前3-5個頁面。 – dotslash
如果我們需要深度分頁,我們可以使用滾動API嗎? –
但是,當我們啓用排序功能時,可以在電子商務網站上說。當用戶想要查看價格最高的商品時。當我們按最高價格比較排序時,結果會有所不同,而當我們按最低頁面排序時,結果會有所不同,但最後一頁是正確的?因爲我們限制可以訪問的結果的數量。 任何解決此問題的方法? –