文档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":{} } } }