ES第六天 深度分頁和scroll search

2021-10-07 21:30:35 字數 844 閱讀 9997

我們由前面知道,es的資料是分片進行儲存的,整體資料會被分布在不同的primary分片上面,因此,如果一次比較深度的分頁且排序的操作,成本將會比較大:

假如使用者要查詢5001-5050條資料,按照**由低到高進行排序,那麼es的查詢會發生什麼?

因為資料是分片儲存,因此需要每個分片都拿出自身的前5050條,然後整體排序後,取出5001-5050的資料,然後把無用的資料丟棄掉。這個成本隨著資料量的增加將難以預估!

因此建議:

1、當你的資料超過1w,不要使用深度分頁

2、返回結果不要超過1000個,500以下為宜

通過在_search後面指定scroll引數來使用:

scroll=1m,代表時間視窗是1分鐘

get /product/_search?scroll=1m

}, "sort":[

}],

"size"

: 2}

返回:

,

"hits":,

"max_score"

: null,

"hits":[

, "sort":[

99999

]}, ,

"sort":[

12999

]}]}}

移動游標,繼續得到後面的資料:

get /_search/scroll

第六天 風氣

第六天 風氣 答 人有了,就得定規矩,否則就是一幫烏合之眾,而不是團隊。1必須朝九晚五。嚴格控制員工手裡有辦公室鑰匙。下班必須準時鎖門,員工準時離開。斷公司外網。要加班必須上級主管簽字,更不准在辦公室留宿,洗澡。這一條很重要,不要讓程式設計師活得像個浪子,精神恍惚,口中神叨,鬍子拉碴,這都是浮動工作...

開課第六天

今天是開課第六天,老師上午沒有講課,講了一上午的題,下午又講了新知識,如下 1 順序結構 從上到下順序進行。2 分支結構 if boolean表示式 else switch 值 case 值 break case 值 break switch 執行流程,switch的值和case的值一一比較,如果一...

第六天學習

變數的作用域 區域性變數 在函式內部定義的變數,這個變數只能在函式內部使用,在全域性當中不能使用。使用就報錯了。全域性變數 在函式外部定義的變數,這個變數可以在全域性使用。但是我們一般不推薦使用全域性變數 因為可能會意外的修改掉變數的值。迫不得已不要用全域性變數 衝突處理原則 就近原則。而不是從上到...