ES基本搜索(1)


1.空搜索

GET  <寫路徑>/_search

返回的結果:

eg:

GET propdict/doc/_search

 1 {
 2 "took": 5,
 3 "timed_out": false,
 4 "_shards": {
 5 "total": 5,
 6 "successful": 5,
 7 "skipped": 0,
 8 "failed": 0
 9 },
10 "hits":{
11 省略。。。。。
12 }
13 }

hits 

返回結果中最 

重要的部分是 hits ,它 包含 total 字段來表示匹配到的文檔總數,並且一個 hits 數組包含所查詢結果的前十個文檔。

在 hits 數組中每個結果包含文檔的 _index 、 _type 、 _id ,加上 _source 字段。這意味着我們可以直接從返回的搜索結果中使用整個文檔。這不像其他的搜索引擎,僅僅返回文檔的ID,需要你單獨去獲取文檔。

每個結果還有一個 _score ,它衡量了文檔與查詢的匹配程度。默認情況下,首先返回最相關的文檔結果,就是說,返回的文檔是按照 _score 降序排列的。在這個例子中,我們沒有指定任何查詢,故所有的文檔具有相同的相關性,因此對所有的結果而言 1 是中性的 _score 。

max_score 值是與查詢所匹配文檔的 _score 的最大值

Took

took 值告訴我們執行整個搜索請求耗費多少毫秒

shards

_shards 部分 告訴我們在查詢中參與分片的總數,以及這些分片成功了多少個失敗了多少個。正常情況下我們不希望分片失敗,但是分片失敗是可能發生的。如果我們遭遇到一種災難級別的故障,在這個故障中丟失了相同分片的原始數據和副本,那么對這個分片將沒有可用副本來對搜索請求作出響應。假若這樣,Elasticsearch 將報告這個分片是失敗的,但是會繼續返回剩余分片的結果。

timeout

告訴我們查詢是否超時,默認情況不超時。

 如果低響應時間比完成結果更重要,你可以指定 timeout 為 10 或者 10ms(10毫秒),或者 1s(1秒):

GET /_search?timeout=10ms

如果請求超時,ES將會返回已經成功從每個分片查詢到的結果

2.多個索引和多個類型下的搜索

在進行搜索時,可以旋轉具體的索引和類型

/_search在所有的索引中搜索所有的類型

/gb/_search在 gb 索引中搜索所有的類型

/gb,us/_search在 gb 和 us 索引中搜索所有的文檔

/g*,u*/_search在任何以 g 或者 u 開頭的索引中搜索所有的類型

/gb/user/_search在 gb 索引中搜索 user 類型

/gb,us/user,tweet/_search在 gb 和 us 索引中搜索 user 和 tweet 類型

/_all/user,tweet/_search在所有的索引中搜索 user 和 tweet 類型

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM