es滾動查詢分析和使用步驟示例詳解
ES在進行普通的查詢時,默認只會查詢出來10條數據。我們通過設置es中的size可以將最終的查詢結果從10增加到10000。如果需要查詢數據量大于es的翻頁限制或者需要將es的數據進行導出又當如何?Elasticsearch提供了一種稱為"滾動查詢"(Scrolling)的機制,用于處理大型數據集的分頁查詢。滾動查詢允許在持續(xù)的時間段內保持一個活動的搜索上下文,然后使用滾動ID進行迭代檢索結果。滾動查詢和關系型數據庫中的游標有點類似,因此也叫游標查詢。
滾動查詢的一般步驟
1、發(fā)起初始搜索請求,返回命中結果和滾動ID
scroll=5m表示每個滾動查詢的有效時間為5分鐘
下面例子:
POST /your_index/_search?scroll=5m
{
"size": 100, // 每次返回的結果數量
"query": { ... } // 查詢條件
}命中結果:
{
"_scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
"hits": {
"total": {
"value": 10000,
"relation": "eq"
},
"hits": [ ... ] // 檢索到的文檔
}
}
示例:

2、使用滾動查詢下一頁的結果:
例子:
POST /_search/scroll
{
"scroll": "5m",
"scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}命中結果:

3、重復執(zhí)行直到沒有檢索結果返回
Elasticsearch將返回下一頁結果。可以根據需要重復這個步驟,直到沒有更多結果為止,即無數據返回為止。
4、清除滾動上下文釋放資源
滾動查詢結束后,可以通過發(fā)送一個清除滾動上下文的請求來釋放資源:
DELETE /_search/scroll
{
"scroll_id": [
"DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
]
}到此這篇關于es滾動查詢分析和使用步驟的文章就介紹到這了,更多相關es滾動查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vscode+picgo+github配置免費圖床(圖文教程)
本文主要介紹了vscode+picgo+github配置免費圖床,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
詳解idea中Git的Stash Changes和UnStash Changes用法
這篇文章主要介紹了idea中Git的Stash Changes和UnStash Changes用法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
fiddler使用方法之Fiddler顯示IP,Fiddler中文亂碼解決方法以及fiddler模擬發(fā)送get/post
今天為大家介紹fiddler的3種使用技巧,(1)Fiddler抓包顯示域名IP(2)解決Fiddler抓包時中文亂碼問題(3)利用fiddler模擬發(fā)送get/post請求的方法2018-10-10

