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

相关推荐
独行soc11 分钟前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
2501_9336707914 分钟前
2026 高职大数据专业考什么证书对就业有帮助?
大数据
xiaobaibai15323 分钟前
营销自动化终极形态:AdAgent 自主闭环工作流全解析
大数据·人工智能·自动化
星辰_mya31 分钟前
Elasticsearch更新了分词器之后
大数据·elasticsearch·搜索引擎
xiaobaibai15335 分钟前
决策引擎深度拆解:AdAgent 用 CoT+RL 实现营销自主化决策
大数据·人工智能
王码码203541 分钟前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
2501_9151063242 分钟前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
悟纤1 小时前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
ESBK20251 小时前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
vistaup1 小时前
OKHTTP 默认构建包含 android 4.4 的TLS 1.2 以及设备时间不对兼容
android·okhttp