搜索查询是对Elasticsearch数据流或索引中数据信息的请求。
我们可以将查询视为一个问题,以Elasticsearch理解的方式编写。根据我们的数据,我们可以使用查询获得以下问题的答案:
- 我的服务器上的哪些进程的响应时间超过500毫秒?
- 网络上的哪些用户在上周内运行了regsvr32.exe?
- 我的网站上的哪些页面包含特定的单词或短语?
搜索由一个或多个查询组成,这些查询被组合并发送到Elasticsearch。匹配搜索查询的文档将在响应的点击或搜索结果中返回。
搜索还可能包含用于更好地处理其查询的附加信息。例如,搜索可能仅限于特定索引或仅返回特定数量的结果。
Run a search
我们可以使用搜索API search和聚合存储(aggregate)在Elasticsearch数据流或索引中的数据。API的查询请求主体参数接受在查询DSL中编写的查询。
以下请求使用匹配查询搜索my-index-000001。此查询匹配user.id值为kimchy的文档。
GET /my-index-000001/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
API响应返回查询匹配的前10个文档在hits.hits属性中的。
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.3862942,
"hits": [
{
"_index": "my-index-000001",
"_type": "_doc",
"_id": "kxWFcnMByiguvud1Z8vC",
"_score": 1.3862942,
"_source": {
"@timestamp": "2099-11-15T14:12:12",
"http": {
"request": {
"method": "get"
},
"response": {
"bytes": 1070000,
"status_code": 200
},
"version": "1.1"
},
"message": "GET /search HTTP/1.1 200 1070000",
"source": {
"ip": "127.0.0.1"
}