来尝试一下更为复杂一点的检索。我们想要找到姓中包含“Smith"且年龄大于30的员工信息,一个有效的查询如下:
GET /megacorp/employee/_search
{
"query":{
"filtered":{
"filter":{
"range":{
"age":{"gt":30}
}
},
"query":{
"match":{
"last_name":"smith"
}
}
}
}
}
以上请求体有两部分组成
1:范围过滤器,这个过滤器定义了age大于30的员工信息(gt:greateer than)。
2:查询姓中包含smith的信息。
先不要太在意语法和关键字,这里只是让你意识到我们使用了一个范围过滤器。现在结果就成了如下形式:
{
...
"hits":{
"total": 1,
"max_score": 0.30685282,
"hits":[
{
...
"_source":{
"first_name": "Jane",
"last_name": "Smith",
"age": 32,
"about": "I like to collect rock albums",
"interests":["music"]
}
}
]
}
}
原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_more_complicated_searches.html
时间: 2024-10-15 21:06:04