此API用于搜索Elasticsearch中的内容.用户可以通过在post请求的消息体中发送带有查询字符串作为参数或查询的get请求来进行搜索.主要是所有搜索APIS都是多索引,多类型.
Elasticsearch允许我们搜索所有文档中存在的文档指数或某些特定指数.例如,如果我们需要搜索包含中心名称的所有文档.
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" } }] } }
或者,我们可以在学校,学校_gov指数中搜索相同的内容;
GET http://localhost:9200/schools,schools_gov/_search?q = name:model
We can also search all the documents in an index across all types or in some specified type. For example,
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" } }] } }
使用统一资源标识符可以在搜索操作中传递许多参数:
Sr.No | Parameter & Description |
---|---|
1 | Q This parameter is used to specify query string. |
2 | lenient Format based errors can be ignored by just setting this parameter to true. It is false by default. |
3 | fields This parameter helps us to get response from selective fields. |
4 | sort We can get sorted result by using this parameter, the possible values for this parameter is fieldName, fieldName:asc/fieldname:desc |
5 | timeout We can restrict the search time by using this parameter and response only contains the hits in that specified time. By default, there is no timeout. |
6 | terminate_after We can restrict the response to a specified number of documents for each shard, upon reaching which the query will terminate early. By default, there is no terminate_after. |
7 | from The starting from index of the hits to return. Defaults to 0. |
8 | size It denotes the number of hits to return. Defaults to 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" } } ……………………………………………….