1. 程式人生 > 實用技巧 >跟我學Elasticsearch(17) _search結果分析及其timeout機制

跟我學Elasticsearch(17) _search結果分析及其timeout機制

目錄

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(分鐘)