此API用於在Elasticsearch中搜尋內容。 使用者可以通過傳送具有查詢字串的獲取請求作為引數或在請求的訊息正文中的查詢來進行搜尋。所有的搜尋API都是多索引,多型別。
Elasticsearch允許我們搜尋存在於所有索引或一些特定索引中的文件。 例如,如果我們需要搜尋名稱包含central
的所有文件。
GET http://localhost:9200/_search?q = name:central
響應
{
"took":78, "timed_out":false, "_shards":{"total":10, "successful":10, "failed":0},
"hits":{
"total":1, "max_score":0.19178301, "hits":[{
"_index":"schools", "_type":"school", "_id":"1", "_score":0.19178301,
"_source":{
"name":"Central School", "description":"CBSE Affiliation",
"street":"Nagan", "city":"paprola", "state":"HP", "zip":"176115",
"location":[31.8955385, 76.8380405], "fees":2000,
"tags":["Senior Secondary", "beautiful campus"], "rating":"3.5"
}
}]
}
}
或者,同樣地我們可以在schools
,schools_gov
索引中搜尋 -
還可以在所有型別或某種指定型別的索引中搜尋所有文件。 例如,
Get http://localhost:9200/schools/_search?q = tags:sports
響應
{
"took":16, "timed_out":false, "_shards":{"total":5, "successful":5, "failed":0},
"hits":{
"total":1, "max_score":0.5, "hits":[{
"_index":"schools", "_type":"school", "_id":"2", "_score":0.5,
"_source":{
"name":"Saint Paul School", "description":"ICSE Afiliation",
"street":"Dawarka", "city":"Delhi", "state":"Delhi", "zip":"110075",
"location":[28.5733056, 77.0122136], "fees":5000,
"tags":["Good Faculty", "Great Sports"], "rating":"4.5"
}
}]
}
}
如下這些引數可以使用統一資源識別符號在搜尋操作中傳遞 -
編號 | 引數 | 說明 |
---|---|---|
1 | Q | 此引數用於指定查詢字串。 |
2 | lenient | 基於格式的錯誤可以通過將此引數設定為true 來忽略。預設情況下為false 。 |
3 | fields | 此引數用於在響應中選擇返回欄位。 |
4 | sort | 可以通過使用這個引數獲得排序結果,這個引數的可能值是fieldName ,fieldName:asc 和fieldname:desc |
5 | timeout | 使用此引數限定搜尋時間,響應只包含指定時間內的匹配。預設情況下,無超時。 |
6 | terminate_after | 可以將響應限制為每個分片的指定數量的文件,當到達這個數量以後,查詢將提前終止。 預設情況下不設定terminate_after 。 |
7 | 從命中的索引開始返回。預設值為0 。 |
|
8 | size | 它表示要返回的命中數。預設值為10 。 |
還可以在請求正文中使用查詢DSL
來指定查詢,並且在前面的章節中已經給出了很多範例,
POST http://localhost:9200/schools/_search
請求正文
{
"query":{
"query_string":{
"query":"up"
}
}
}
響應
……………………………………………….
{
"_source":{
"name":"City School", "description":"ICSE", "street":"West End",
"city":"Meerut", "state":"UP", "zip":"250002", "location":[28.9926174, 77.692485],
"fees":3500, "tags":["Well equipped labs"],"rating":"4.5"
}
}
……………………………………………….