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

相关推荐
帅次12 分钟前
Flutter FloatingActionButton 从核心用法到高级定制
android·flutter·macos·ios·kotlin·android-studio
阿里云大数据AI技术14 分钟前
演讲实录|分布式 Python 计算服务 MaxFrame 介绍及场景应用方案
大数据·云原生·云计算
NMBG221 小时前
[JAVASE] Collection集合的遍历
android·java·开发语言·java-ee·intellij-idea
MXsoft6182 小时前
监控易对各类服务器硬件的广泛支持和深入监控能力
大数据·数据库·信息可视化
浪剑超2 小时前
单机 elasticsearch下载,安装,配置,启动,百度云链接提供
elasticsearch
程序员Android2 小时前
Android 手机耗电数据分析工具介绍
android·智能手机
Elastic 中国社区官方博客3 小时前
拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
GIS数据转换器3 小时前
构建智能汽车地图标准体系:自动驾驶技术的基石
大数据·人工智能·科技·安全·机器学习·自动驾驶·汽车
moz与京3 小时前
【记】如何理解kotlin中的委托属性?
android·开发语言·kotlin
左少华3 小时前
Kotlin-inline函数特效
android·开发语言·kotlin