Elasticsearch之索引的增删改查(6.x版本)-yellowcong

1. 节点信息查看

bash 复制代码
#查看集群健康情况
curl -X GET 'localhost:9200/_cat/health?v&pretty'

#查看节点信息
curl -X GET 'localhost:9200/_cat/nodes?v&pretty' 

2. 索引管理

在es中,索引就相当于是mysql中的库了。

bash 复制代码
#查看索引列表
curl -X GET 'localhost:9200/_cat/indices?v&pretty'

# 创建index 
curl -X PUT 'localhost:9200/customer?pretty'
curl -X PUT 'localhost:9200/users?pretty'

#删除索引
curl -X PUT 'localhost:9200/users?pretty'
curl -X GET 'localhost:9200/_cat/indices?v&pretty'
#删除索引
curl -X DELETE 'localhost:9200/users?pretty'

可以看到我们创建了users 这个索引,然后删除这个users 这个索引对象,

3. 文档管理

3.1 文档添加

文档添加的愈发是/index/type/id 其中,index是索引名称,type就相当于是mysql中的哪张表了。

bash 复制代码
# 添加文档
#当customer这个文档不存在得情况,就会自动创建这个索引
#-d 数据类型
#-H 添加Head 头
#-XPUT put提交方式
#external/1
curl -X PUT 'localhost:9200/customer/external/1?pretty&pretty' -d '{"name": "John Doe"}'  -H "Content-Type:application/json"
curl -X PUT 'localhost:9200/customer/external/2?pretty&pretty' -d '{"name": "yellowcong"}'  -H "Content-Type:application/json"

#查询
#查询id为1得
curl -X GET 'localhost:9200/customer/external/1?pretty&pretty'
 

可以看到文档的类型是"_type" : "external"

3.2 文档更新

这个地方external ,有点像mysql中每条记录得id信息

bash 复制代码
# 插入文档
curl -X PUT 'localhost:9200/customer/external/1?pretty&pretty' -d '{"name": "yellowcong2","age":12}'  -H "Content-Type:application/json"

#获取列表
curl -X GET 'localhost:9200/customer/external/3?pretty&pretty'

#直接通过post /put 覆盖更新文档
curl -X PUT 'localhost:9200/customer/external/1/?pretty&pretty' -d '{"name": "yellowcong2","age":12}'  -H "Content-Type:application/json"

#通过update 接口进行更新
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -d'
{
  "doc": { "name": "张三","age":12 }
}'  -H "Content-Type:application/json"

#更新某个字段,比如age 这种 ,ctx._source 表示原文档
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -d'
{
  "script" : "ctx._source.age += 5"
}'  -H "Content-Type:application/json"

#更新名称
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -d'
{
  "script" : "ctx._source.name = \"张2\""
}'  -H "Content-Type:application/json"

3.3 文档删除

bash 复制代码
#删除文档
curl -X DELETE 'localhost:9200/customer/external/1?pretty'  

3.4 文档批处理

bash 复制代码
#删除文档customer 
curl -X DELETE 'localhost:9200/customer?pretty'
 
#批量插入数据,两条
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d'
{"index":{"_id":"5"}}
{"name": "John Doe" }
{"index":{"_id":"6"}}
{"name": "Jane Doe" }
' -H  "Content-Type:application/json"

#查看列表
curl 'localhost:9200/customer/_search?pretty'

#批量更新和删除
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d'
{"update":{"_id":"5"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"6"}}
' -H  "Content-Type:application/json"

#查看索引
curl 'localhost:9200/customer/external/5

批量插入两条数据

查看插入的数据

4 搜索

4.1 查询所有数据

bash 复制代码
#查看customer得所有数据
curl -XGET 'localhost:9200/customer/_search?pretty'

#这个q就相当于是查询条件
curl -XGET 'localhost:9200/customer/_search?q=*&pretty'

#第三种查询所有得写法
curl -X GET 'localhost:9200/customer/_search?pretty' -d'
{
  "query": { "match_all": {} }
}'

4.2 分页查询

bash 复制代码
#删除之前的文档
curl -X DELETE 'localhost:9200/customer?pretty' 

#批量插入数据,插入六条数据
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d'
{"index":{"_id":"1"}}
{"name": "yellowcong","age":12 }
{"index":{"_id":"2"}}
{"name": "李二" ,"age":65}
{"index":{"_id":"3"}}
{"name": "张三" ,"age":22}
{"index":{"_id":"4"}}
{"name": "赵四","age":18 }
{"index":{"_id":"5"}}
{"name": "王五","age":30 }
{"index":{"_id":"6"}}
{"name": "赵六","age":20 }
' -H  "Content-Type:application/json"

#查看所有
curl -X GET 'localhost:9200/customer/_search?pretty'

#分页查询,排序方式通过_id ,页面大小为2
#query 查询条件
#sort 排序方式
#from 开始页面
#size 页面大小
curl -XGET 'localhost:9200/customer/_search?pretty' -d'
{
  "query": { "match_all": {} },
  "sort": { "_id": { "order": "asc" } },
  "from": 0,
  "size": 2
}' -H  "Content-Type:application/json"


#返回指定的字段,通过_source 指定只需要返回的字段
curl -XGET 'localhost:9200/customer/_search?pretty' -d'
{
  "query": { "match_all": {} },
  "_source": [ "name"]
}' -H  "Content-Type:application/json"

4.3 按条件查询

bash 复制代码
#与查询
curl -XGET 'localhost:9200/customer/_search?pretty' -d'
{
  "query": { "match_all": {"name":"yellowcong"} },
  "sort": { "_id": { "order": "asc" } }
}' -H  "Content-Type:application/json"

#或查询must,should,和 must_not 

参考文章

https://www.cnblogs.com/fhen/p/7055798.html

http://cwiki.apachecn.org/pages/viewpage.action?pageId=4260713

http://cwiki.apachecn.org/pages/viewpage.action?pageId=4260761

相关推荐
Android系统攻城狮1 天前
Android ALSA驱动进阶之获取采样格式位宽snd_pcm_format_width:用法实例(九十八)
android·pcm·音频进阶·alsa驱动
HillVue1 天前
中国未来 AI 路径的百度样本
大数据·eureka·dubbo
莫比乌斯环1 天前
【日常随笔】Android 跳离行为分析 - Instrumentation
android·架构·代码规范
aningxiaoxixi1 天前
android 媒体之 MediaSession
android·媒体
GoldenPlayer1 天前
Android文件权限报错
android
超级种码1 天前
All In AI——DSPy框架,让智能体开发像模型训练一样
大数据·人工智能·算法
管理大亨1 天前
智慧农业ELK落地方案:数据驱动精准农业
大数据·redis·python·elk·elasticsearch
武子康1 天前
大数据-188 Logstash Output 插件实战:stdout/file/Elasticsearch 输出配置与调优
大数据·后端·logstash
Jomurphys1 天前
Compose 适配 - 全屏显示 EdgeToEdge
android
物流可信数据空间1 天前
专家解读 | 探索安全与价值共赢的智驾数据流通新范式——兼论对物流可信数据空间建设的启示
大数据