PUT /es_db
{"settings":{
"index":{"analysis.analyzer.default.type":"ik_max_word"}}}
PUT /es_db/_doc/1
{"name":"张三","sex":1,"age":25,
"address":"广州天河公园",
"remark":"java developer"}
修改文档([PUT | POST] /索引名称/_doc/id)
全量更新,整个json都会替换
如果文档存在,现有文档会被删除,新的文档会被索引
PUT /es_db/_doc/1/
{"name":"张三","sex":1,"age":25}
使用_update部分更新(POST /索引名称/_update/id)
update不会删除原来的文档,而是实现真正的数据更新
部分更新:在原有文档上更新
文档必须已经存在,更新只会对相应字段做增量修改
POST /es_db/_update/1
{"doc":{"age":28}}
使用_update_by_query 更新文档
POST /es_db/_update_by_query
{"query":{
"match":{"_id":1}},
"script":{"source":"ctx._source.age=30"}}
POST /es_db/_doc/2?if_seq_no=21&if_primary_term=6
{"name":"李四xxx"}
查询文档:
根据id查询文档(GET /索引名称/_doc/id)
条件查询 _search(GET /索引名称/_doc/_search)
GET /es_db/_doc/_search 查询前10条文档
REST风格的请求URI,直接将参数带过去
# 条件查询
GET /es_db/_doc/_search?q=age:28
# 范围查询
GET /es_db/_doc/_search?q=age[25 TO 26]
# 分页查询 from=*&size=*
GET /es_db/_doc/_search?q=age[25 TO 26]&from=0&size=1
# 对查询结果只输出某些字段 _source=字段,字段
GET /es_db/_doc/_search?_source=name,age
# 对查询结果排序 sort=字段:desc/asc
GET /es_db/_doc/_search?sort=age:desc
封装到request body中,这种方式可以定义更加易读的JSON格式
GET /es_db/_search
{"query":{"match":{"address":"广州白云"}}}
删除文档(DELETE /索引名称/_doc/id)
文档批量操作
批量操作可以减少网络连接所产生的开销,提升性能
支持在一次API调用中,对不同的索引进行操作
可以在URI中指定Index,也可以在请求的Payload中进行
操作中单条操作失败,并不会影响其他操作
返回结果包括了每一条操作执行的结果
批量写入:批量对文档进行写操作是通过_bulk的API来实现的
请求方式:POST
请求地址:_bulk
请求参数:通过_bulk操作文档,一般至少有两行参数 (或偶数行参数)
第一行参数为指定操作的类型及操作的对象 (index,type和id)
actionName:表示操作类型,主要有create, index, delete和update
第二行参数才是操作的数据
POST _bulk
{"actionName":{"_index":"indexName", "_type":"typeName","_id":"id"}}
{"field1":"value1", "field2":"value2"}