一、文档管理
1.添加文档
模板:
PUT /{索引}/_doc/{id} {请求体数据信息json格式}
例子:
PUT /book/_doc/1 { "title":"Java程序性能", "desc":"强类型语言" }
2.修改文档
模板:
POST /{索引}/_doc/{id} {请求体数据信息json格式}
例子:
POST /book/_doc/1 { "title":"Go程序性能", "desc":"强类型语言" }
3.删除文档
模板:
DELETE /{索引}/_doc/{id}
例子
DELETE /book/_doc/1
4.获取文档
模板:
GET /{索引}/_doc/{id}
例子:
GET /book/_doc/1
5.批处理
模板:
[PUT|POST] /{索引}/_bulk {action:{metadata}} {请求体数据信息json格式}
备注:
action对应取值:
- create : 创建一个文档,如果文档不存在就创建
- index : 创建一个新的文档,如果文档存在就更新
- update : 批量更新文档
- delete : 批量删除,不需要有请求体
例子:
POST /book/_bulk {"index":{"_id":1}} {"id":1,"title":"php入门到精通","desc":"php是世界上最好的语言"} {"index":{"_id":2}} {"id":1,"title":"java入门到精通","desc":"java是世界上最快的语言"}
二、查询数据 - query
1.查询全部数据 - match_all
POST /{索引}/_search { "query": { "match_all": {} } }
2.关键词查询 - term
模板:
POST /{索引}/_search { "query":{ "term":{ "{字段名}":"{搜索词}" } } }
例子:
POST /book/_search { "query": { "term": { "desc": "java" } } }
3.根据查询字符串查询 - query_string
模板:
POST /{索引}/_search { "query":{ "query_string":{ "default_field":"{字段名}", "query":"{查询字符串}" } } }
例子
POST /book/_search { "query":{ "query_string":{ "default_field":"desc", "query":"java" } } }
4.根据查询字符串查询 - match
POST /book/_search { "query":{ "match":{ "title":"java" } } }
5.指定多个字段查询 - multi_match
POST /book/_search { "query":{ "multi_match":{ "query":"入门", "fields":["desc","title"] } } }
三、bool查询
1.组合条件查询
逻辑关系:
must:必须满足,相当于是AND
should:应该满足,相当于OR
must_not:必须不能满足,相当于NOT
filter: 必须满足,不计分,同时可以cache
POST /book/_search { "query":{ "bool":{ "should":[ { "term": { "title": "java" } }, { "match": { "desc": "PHP" } } ] } } }
2.filter条件搜索
(1)范围搜索 - range
- gt :大于
- lt :小于
- gte :大于等于
- lte :小于等于
例子:
POST /book/_search { "query":{ "bool":{ "filter":{ "range":{ "price":{ "gt":25, "lt":50 } } } } } }
(2)字段存在查询 - exists
例子:
{ "query":{ "bool":{ "filter":{ "exists":{ "field":"desc" } } } } }