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

相关推荐
Debug_Snail1 小时前
【营销策略算法】关联规则学习-购物篮分析
大数据·人工智能
BYSJMG2 小时前
计算机毕设大数据方向:基于Spark+Hadoop的餐饮外卖平台数据分析系统【源码+文档+调试】
大数据·hadoop·分布式·python·spark·django·课程设计
java水泥工3 小时前
基于Echarts+HTML5可视化数据大屏展示-茶叶种植大数据溯源平台
大数据·echarts·html5
华略创新3 小时前
标准化与定制化的平衡艺术:制造企业如何通过灵活配置释放系统价值
大数据·人工智能·制造·crm·管理系统·erp·企业管理
用户0273851840265 小时前
[Android]RecycleView的item用法
android
半夏陌离5 小时前
SQL 实战指南:电商订单数据分析(订单 / 用户 / 商品表关联 + 统计需求)
java·大数据·前端
前行的小黑炭5 小时前
Android :为APK注入“脂肪”,论Android垃圾代码在安全加固中的作用
android·kotlin
帅得不敢出门6 小时前
Docker安装Ubuntu搭建Android SDK编译环境
android·ubuntu·docker
tangweiguo030519877 小时前
Android Kotlin 动态注册 Broadcast 的完整封装方案
android·kotlin
fatiaozhang95277 小时前
浪潮CD1000-移动云电脑-RK3528芯片-2+32G-安卓9-2种开启ADB ROOT刷机教程方法
android·网络·adb·电脑·电视盒子·刷机固件·机顶盒刷机