ElasticSearch基础 增删改查入门归纳

基本概念:index库>type表>document文档

即index相当于db库  type类似表 document就是表中每行json数据 es保存的数据是json类型

结构示意图如下

1.检索es信息

1)GET /_cat/nodes:查看所有节点
如:http://192.168.56.10:9200/_cat/nodes2)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没有提供删除类型的方式 把文档全部删除相当于删除了类型
原文地址:https://www.cnblogs.com/hbhb/p/14604601.html