put /t_order, "properties" : }},
"cancel_time" : ,
"create_time" : ,
"create_user" : ,
"delivery_type" : ,
"discount_amount" : ,
"expired_time" : ,
"id" : ,
"is_deleted" : ,
"is_pay" : ,
"is_postsale" : ,
"order_amount" : ,
"order_code" : }},
"order_remark" : }},
"order_status" : ,
"pay_amount" : ,
"pay_time" : ,
"pay_type" : ,
"postage" : ,
"product_amount" : ,
"serial_code" : }},
"shop_id" : ,
"update_time" : ,
"update_user" : ,
"user_id" :
}}post /t_order/_search
}}
2、新增測試資料
post /t_order/_bulk
3、演示(show me the code):
### from + size [深度翻頁不推薦使用 from + size]
#from + size 兩個引數定義了結果頁面顯示資料的內容。
#from:未指定,預設值是 0,注意不是1,代表當前頁返回資料的起始值。
#size:未指定,預設值是 10,代表當前頁返回資料的條數。
post /ds-trade_t_order/_search}}
### searchafter [官方文件強調:不再建議使用scroll api進行深度分頁。如果要分頁檢索超過 top 10,000+ 結果時,推薦使用:pit + search_after。]
#part1:建立 pit 檢視,這是前置條件不能省。
post /ds-trade_t_order/_pit?keep_alive=5m
#part2:建立基礎查詢語句,這裡要設定翻頁的條件。
post /_search},"pit": ,
"sort": [
}]}
#part3:實現後續翻頁:後續翻頁都需要借助 search_after 指定前一頁的最後乙個文件的 sort 字段值。
post /_search},"pit": ,
"sort": [}],
"search_after": [
1648557674000,
7]}
###scroll [全量或資料量很大時遍歷結果資料,而非分頁查詢。]
#part1:指定檢索語句同時設定 scroll 上下文保留時間
post /t_order/_search?scroll=3m} , "sort": [
}]}
#part2:指定檢索語句同時設定 scroll 上下文保留時間
post /_search/scroll
總結:
from+ size:需要隨機跳轉不同分頁(類似主流搜尋引擎)、top 10000 條資料之內分頁顯示場景。
search_after:僅需要向後翻頁的場景及超過top 10000 資料需要分頁場景。
scroll:需要遍歷全量資料場景 。
max_result_window:調大治標不治本,不建議調過大。
pit:本質是檢視。
參考資料————————————————
Elasticsearch 分頁問題
1.form和size的方式 2.scroll api 3.search after引數 按照一般的查詢流程來說,如果我想查詢前10條資料 1 客戶端請求發給某個節點 2 節點 給個個分片,查詢每個分片上的前10條 3 結果返回給節點,整合資料,提取前10條 4 返回給請求客戶端 該分頁方式可以通過...
ElasticSearch 分頁查詢
在預設情況下,elasticsearch 查詢返回前10條匹配的文件。為了對大批量查詢結果分頁,最簡單方式是在查詢api中新增from和size引數,from表示需要返回的滿足查詢條件的數量,size表示查詢起始資料在全量結果集中的偏移量。建立實驗索引 put linked blog get lin...
elasticsearch深度分頁索引
背景 es 深度分頁索引效率問題 1.常見深度分頁方式 from size es 預設採用的分頁方式是 from size 的形式,在深度分頁的情況下,這種使用方式效率是非常低的,比如 from 5000,size 10000,es 需要在各個分片上匹配排序並得到5000 10000條有效資料,然後...