文档1
PUT /megacorp/employee/1 {
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
文档2
PUT /megacorp/employee/2 {
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}
文档3
PUT /megacorp/employee/3 {
"first_name" : "Douglas",
"last_name" : "Fir",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}
搜索
GET /megacorp/employee/1
用 _search 替代原来的文档 ID:
GET /megacorp/employee/_search #默认返回前10个结果
查询字符串 搜索:
在请求中依旧使用_search
关键字,然后将查询语句传递给参数q=
。这样就可以得到所有姓氏为Smith的结果:
GET /megacorp/employee/_search?q=last_name:Smith&pretty
使用DSL语句查询(Domain Specific Language)
GET /megacorp/employee/_search {
"query":{
"match":{
"last_name":"Smith"
}
}
}
查找年龄大于30,姓氏是Smith的员工:
GET /megacorp/employee/_search {
"filtered":{
"filter":{
"range":{
"age":{ "gt" : 30 }
}
},
"query":{
"match":{ "last_name" : "Smith" }
}
}
}
搜索所有喜欢"rock climbing"的员工:(这里会匹配到 rock 、climbing 两个单词至少包含其中一个的文档)
GET /megacorp/employee/_search {
"query":{
"match":{
"about":"rock climbing"
}
}
}
短语搜索 搜索同时包含 rock climbing 且这两单词相邻的文档:
GET /megacorp/employee/_search {
"query":{
"match_phrase":{
"about":"rock climbing"
}
}
}
高亮搜索结果:
GET /megacorp/employee/_search {
"query":{
"match_phrase":{
"about":"rock climbing"
}
},
"highlight":{
"fields":{
"about":{}
}
}
}