ES 深度分頁 滾動搜尋

2021-10-14 15:17:01 字數 984 閱讀 6098

深度分頁其實就是搜尋的深淺度,比如第1頁,第2頁,第10頁,第20頁,是比較淺的;第10000頁,第20000頁就是很深了。

使用如下操作:

},

"from": 9990,

"size": 10

} },

"from": 9999,

"size": 10

}

我們在獲取第9999條到10009條資料的時候,其實每個分片都會拿到10009條資料,然後集合在一起,總共是10009*3=30027條資料,針對30027資料再次做排序處理,最終會獲取最後10條資料。

譬如**搜尋限制分頁最多100頁,如下:

一次性查詢1萬+資料,往往會造成效能影響,因為資料量太多了。這個時候可以使用滾動搜尋,也就是scroll。滾動搜尋可以先查詢出一些資料,然後再緊接著依次往下查詢。在第一次查詢的時候會有乙個滾動id,相當於乙個錨標記,隨後再次滾動搜尋會需要上一次搜尋的錨標記,根據這個進行下一次的搜尋請求。每次搜尋都是基於乙個歷史的資料快照,查詢資料的期間,如果有資料變更,那麼和搜尋是沒有關係的,搜尋的內容還是快照中的資料。

post /shop/_search?scroll=1m

},

"sort" : ["_doc"],

"size": 5

}post /_search/scroll

es深度分頁處理

最近做到es分頁的需求,由於es的from to的分頁只能在10000條以內的資料進行分頁,超過了10000去查詢就會報錯。在網上找了一下都說用scroll,但是沒有乙個完美的解決方案。然後我就開始自擼了。我用了elasticsearch rest high level client 5.6.3。e...

es深度分頁問題

1.from size es 預設採用的分頁方式是 from size 的形式,在深度分頁的情況下,這種使用方式效率是非常低的,比如 from 5000,size 10,es 需要在各個分片上匹配排序並得到5000 10條有效資料,然後在結果集中取最後10條,es預設是10000條資料,可以通過設定...

滾動重啟es

正常情況下,elasticsearch 希望你的資料被完全的複製和均衡的分布。如果你手動關閉了乙個節點,集群會立刻發現節點的丟失並開始再平衡。如果節點的維護是短期工作的話,這一點就很煩人了,因為大型分片的再平衡需要花費相當的時間 想想嘗試複製 1tb 的資料 即便在高速網路上也是不一般的事情了 我們...