赞
踩
目录
实际开发中,主要有三种方式可以作为es服务的客户端:
一种软件架构风格,而不是标准。更易于实现缓存等机制
method | url地址 | 描述 |
---|---|---|
PUT | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) |
POST | localhost:9200/索引名称/类型名称 | 创建文档(随机文档id) |
POST | localhost:9200/索引名称/类型名称/文档id/_update | 修改文档 |
DELETE | localhost:9200/索引名称/类型名称/文档id | 删除文档 |
GET | localhost:9200/索引名称/类型名称/文档id | 通过文档id查询文档 |
POST | localhost:9200/索引名称/类型名称/_search | 查询所有的数据 |
保存一个数据,保存在哪个索引的哪个类型下(哪张数据库哪张表下),保存时用唯一标识指定
- POST /demo/person/1
- {
- "name":"王璐",
- "age":"35",
- "sex":"男"
- }
结论:指定ID新增,如果ID一样,数据不存在,是新增;数据存在,是更新;而且_seq_no和_version 每次调用值都会发送改变
- POST /demo/person/
- {
- "name":"王璐",
- "age":"35",
- "sex":"男"
- }
结论:不指定ID,每次点击都会自动生成ID值,而且都是新增
- PUT /demo/person/3
- {
- "name":"张顺利",
- "age":"43",
- "sex":"女"
- }
-
结论:PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错
总结:
- POST新增。如果不指定id,会自动生成id。指定id就会修改这个数据,并新增版本号;
可以不指定id,不指定id时永远为创建
指定不存在的id为创建
指定存在的id为更新,而版本号会根据内容变没变而觉得版本号递增与
- PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错。
必须指定id
版本号总会增加
- 怎么记:put和java里map.put一样必须指定key-value。而post相当于mysql insert
- 返回数据:
- 带有下划线开头的,称为元数据,反映了当前的基本信息。
- {
- "_index" : "demo", 表明该数据在哪个数据库下;
- "_type" : "person",表明该数据在哪个类型下;
- "_id" : "3", 表明被保存数据的id;
- "_version" : 1, 被保存数据的版本
- "result" : "create",数据的状态创建还是更新
- "_shards" : {
- "total" : 2,
- "successful" : 1,
- "failed" : 0
- },
- "_seq_no" : 1, 而序列号"_seq_no"则可以看做是索引的信息 在第一次为索引插入数据时为0,每对索引内数据操作成功一次sqlNO加1, 并且文档会记录是第几次操作使它成为现在的情况的
- "_primary_term" : 1
- }

- #其他值不传,不会修改其他值
- POST /demo/person/1/_update
- {
- "doc":{
- "name" : "王璐",
- "age" : "49"
- }
- }
- #方式一
- POST /demo/person/1
- {
- "name" : "王璐",
- "age" : "40"
- }
-
- #方式二
- POST /demo/person/1
- {
- "doc":{
- "name" : "王璐",
- "age" : "35"
- }
- }
- PUT demo/person/1
- {
- "doc":{
- "name":"王璐",
- "age":"49"
- }
- }
- #删除文档
- DELETE /demo/person/1
- #删除索引
- DELETE /demo
注:elasticsearch并没有提供删除类型的操作,只提供了删除索引和文档的操作。
语法格式:
action:index/create/update/delete
metadata:_index,_type,_id
request body:_source (删除操作不需要加request body)
{ action: { metadata }}
{ request body }
- POST _bulk
- {"index":{"_index":"mysql","_type":"student","_id":"1"}}
- {"name":"李四","age":23}
- {"index":{"_index":"mysql","_type":"student","_id":"2"}}
- {"name":"李五","age":33}
- POST _bulk
- {"create":{"_index":"mysql","_type":"student","_id":"3"}}
- {"name":"王一","age":34}
- {"create":{"_index":"mysql","_type":"student","_id":"4"}}
- {"name":"鲁尔","age":32}
- POST _bulk
- {"index":{"_index":"mysql","_type":"student","_id":"1"}}
- {"name":"李四","age":23}
- {"create":{"_index":"mysql","_type":"student","_id":"1"}}
- {"name":"王一","age":34}
结论
create 创建操作,如果需要创建的文档已经存在,那么创建失败
index 创建或替换操作,如果要创建的文档不存在则执行创建操作,如果已经存在则执行替换操作
- POST _bulk
- {"update":{"_index":"mysql","_type":"student","_id":"1"}}
- {"doc":{"name":"王二","age":34}}
- {"update":{"_index":"mysql","_type":"student","_id":"10"}}
- {"doc":{"name":"李四","age":22}}
通过 _bulk 批量更新索引中的文档数据,其中一条更新成功,一条因为无法获取对应ID的文档,更新失败
- POST _bulk
- {"delete":{"_index":"mysql","_type":"student","_id":1}}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。