跟我學Elasticsearch(17) _search結果分析及其timeout機制
阿新 • • 發佈:2020-08-17
目錄
1、搜尋結果分析
GET /_search
took:整個搜尋請求花費了1毫秒
hits.total:本次搜尋,返回了1條結果
hits.max_score:本次搜尋的所有結果中,最大的相關度分數是多少
hits.hits:預設查詢前10條資料,完整資料,按_score降序排序
shards:這次查詢路由到的primary shard和replica shard
timeout:預設無timeout,可以手動指定timeout,走timeout查詢執行機制
2、_search的timeout機制
有些搜尋應用對時間是很敏感的,比如說我們的電商網站,你不能說讓使用者等10分鐘,才能等到一次搜尋請求的結果,如果那樣的話人家早走了,不來買東西了。
而timeout機制,就是指定每個shard只能在timeout時間範圍內將搜尋到的部分資料(也可能全都搜尋到了)直接返回給client,而不是等所有的資料全部搜尋出來以後再返回。
比如,有2個shard,每個shard要搜尋出來1000條資料需要1分鐘,此時我們指定timeout=10ms,每個shard執行到10ms的時候可能就搜尋出10條,那麼這個請求本來應該在1分鐘後總共拿到2000條資料,但是指定timeout後,就會在10ms拿到20條資料返回給客戶端。
這樣就可以確保一次搜尋請求可以在指定的timeout時長內完成。為一些時間敏感的搜尋應用提供良好的支援。
timeout的語法:
GET /_search?timeout=10m
timeout的單位:ms(毫秒),s(秒),m(分鐘)