此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"
}
}]
}
}
URI搜索
如下這些參數可以使用統一資源識別字在搜索操作中傳遞 -
編號 | 參數 | 說明 |
---|---|---|
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"
}
}
……………………………………………….
上一篇:
Elasticsearch文檔API
下一篇:
Elasticsearch入門教學