一、基本命令_cat
1、查看节点信息
http://192.168.101.132:9200/_cat/nodes
2、查看健康状况
http://192.168.101.132:9200/_cat/health
3、查看主节点的信息
http://192.168.101.132:9200/_cat/master
4、查看所有索引
http://192.168.101.132:9200/_cat/indices
二、索引一个文档(保存)
保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识
PUT customer/external/1
在 customer 索引下的 external 类型下保存 1 号数据为
{ "name": "John Doe" }
put是一个保存更新操作
PUT 和 POST 都可以,
POST 新增。如果不指定 id,会自动生成 id。指定 id 就会修改这个数据,并新增版本号
PUT 可以新增可以修改。PUT 必须指定 id;由于 PUT 需要指定 id,我们一般都用来做修改
操作,不指定 id 会报错。
三、查询文档
GET customer/external/1 结果: { "_index": "customer", //在哪个索引 "_type": "external", //在哪个类型 "_id": "1", //记录 id "_version": 2, //版本号 "_seq_no": 1, //并发控制字段,每次更新就会+1,用来做乐观锁 "_primary_term": 1, //同上,主分片重新分配,如重启,就会变化 "found": true, "_source": { //真正的内容 "name": "John Doe" } } 更新携带 ?if_seq_no=0&if_primary_term=1
乐观锁用法:通过“
if_seq_no=1&if_primary_term=1
”,当序列号匹配的时候,才进行修改,否则不修改。
四、更新文档
POST customer/external/1/_update { "doc":{ "name": "John Doew" } } 或者 POST customer/external/1 { "name": "John Doe2" }
带_update和不带_update都可以更新,带_update的要用doc格式,区别是带_update如果更新内容和之前的一样,则不做任何更新,版本号也不变,而不带_update的则不管内容和之前相不相同都要更新版本号。
五、删除文档
删除记录
http://192.168.101.132:9200/customer/external/1
删除索引
http://192.168.101.132:9200/customer
注意:ES没有删除type的操作
六、ES的批量操作——bulk
实例1: 执行多条数据
POST /customer/external/_bulk {"index":{"_id":"1"}} {"name":"John Doe"} {"index":{"_id":"2"}} {"name":"John Doe"}
实例2:对于整个索引执行批量操作
POST /_bulk {"delete":{"_index":"website","_type":"blog","_id":"123"}} {"create":{"_index":"website","_type":"blog","_id":"123"}} {"title":"my first blog post"} {"index":{"_index":"website","_type":"blog"}} {"title":"my second blog post"} {"update":{"_index":"website","_type":"blog","_id":"123"}} {"doc":{"title":"my updated blog post"}}
实例3:测试数据
链接:
https://gitee.com/xlh_blog/common_content/blob/master/es%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE.json