Elasticsearch 如何進行分頁查詢? 如果起始頁、頁大小很大會有性能上的損耗嗎? 本文從分頁查詢開始, 引出其deep paging (即深層分頁) 問題, 並分析其優劣, 給出解決方法. ...
目錄
1 分頁查詢方法
- 在GET請求中拼接from和size參數
// 查詢10條數據, 預設從第0條數據開始
GET book_shop/_search?size=10
// 從第0條數據開始(包括第0條), 查詢10條數據
GET book_shop/_search?from=0&size=10
// 從第5條數據開始(包括第5條), 查詢10條數據
GET book_shop/_search?from=5&size=10
2 分頁查詢的deep paging問題
deep paging, 就是深層分頁搜索:
分頁搜索的深度越深, 協調節點(負責分發查詢、彙總結果的ES節點)上要存儲的數據就越多, 協調節點對這些數據整體排序後, 再取對應頁的數據.
這個過程既耗費網路資源, 也耗費記憶體和CPU資源.
應該儘可能避免deep paging操作. —— 方法類似於Solr的游標, 後續補充.
版權聲明