ElasticSearch基础 增删改查入门归纳
基本概念:index库
>type表
>document文档
即index相当于db库 type类似表 document就是表中每行json数据 es保存的数据是json类型
结构示意图如下
1.检索es信息
(1)GET /_cat/nodes:查看所有节点 如:http://192.168.56.10:9200/_cat/nodes (2)GET /_cat/health:查看es健康状况 (3)GET /_cat/master:查看主节点 (4)GET/_cat/indicies:查看所有索引 ,等价于mysql数据库的show databases;
2.新增文档
用postman测试 put http://192.168.112.144:9200/customer/external/1 数据{ "name":"John Doe" } 新增成功 PUT和POST区别 POST新增。如果不指定id,会自动生成id。指定id就会修改这个数据,并新增版本号; 可以不指定id,不指定id时永远为创建 指定不存在的id为创建 指定存在的id为更新,而版本号会根据内容变没变而觉得版本号递增与否 PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错。 必须指定id 版本号总会增加
乐观锁
在每次操作es时都会出现_seq_no 和_primary_term 这两个字段是一般做加锁判断
如字段值变了表示数据被改了
如 put http://192.168.112.151:9200/customer/external/1?if_seq_no=3&if_primary_term=12 给加锁
3.修改文档
同上类似 如 put http://192.168.112.144:9200/customer/external/1
post http://192.168.112.151:9200/customer/external/1
{
"name":"John Doe2"
}
还有一种post带update
post http://192.168.112.151:9200/customer/external/1/_update
{
"doc":{
"name":"John Doe1"
}
}
//带_update与不带的区别是要把参数放在"doc"中 且若更新数据与原数据一致时_version _seq_no _primary_term都不会改变
4.删除文档
删除文档 如 delete http://192.168.112.151:9200/customer/external/2 删除索引 如 http://192.168.112.151:9200/customer //es没有提供删除类型的方式 把文档全部删除相当于删除了类型