1. 程式人生 > >ElasticSearch最佳入門實踐(三十三)search結果深入解析search timeout機制揭祕

ElasticSearch最佳入門實踐(三十三)search結果深入解析search timeout機制揭祕

1、我們如果發出一個搜尋請求的話,會拿到一堆搜尋結果,這個搜尋結果裡的各種資料,都代表了什麼含義

在這裡插入圖片描述

took:整個搜尋請求花費了多少毫秒
hits.total:本次搜尋,返回了幾條結果
hits.max_score:本次搜尋的所有結果中,最大的相關度分數是多少,每一條document對於search的相關度,越相關,_score分數越大,排位越靠前
hits.hits:預設查詢前10條資料,完整資料,_score降序排序

shards:shards fail的條件(primary和replica全部掛掉),不影響其他shard。預設情況下來說,一個搜尋請求,會打到一個index的所有primary shard上去,當然了,每個primary shard都可能會有一個或多個replic shard,所以請求也可以到primary shard的其中一個replica shard上去。

2、timeout

我們有些搜尋應用對時間很是敏感的,比如電商網站,你不能搜尋個東西,10分鐘還不出現結果,如果那樣,客人早就走了。

timeout:是指每個shard 就只能在timeout的時間範圍內,將搜尋到的部分資料(也可能是全部搜尋到的資料)直接返回client程式,而不是等到所有的資料全部搜尋出來才返回。
確保,一次搜尋請求可以在使用者指定的timeout時間範圍內完成。為一些時間敏感的搜尋應用提供很好的支援

timeout:預設無timeout,latency平衡completeness,手動指定timeout,timeout查詢執行機制
timeout=10ms,timeout=1s,timeout=1m
GET /_search?timeout=10m