Elasticsearch 基础入门之增删改查

1、简介

        对于数据库而言,都脱离不了对数据的增删改查,本文将从对索引创建、删除、修改配置等和对索引中doc数据进行增删改查操作。使用kibana的dev tools进行操作测试。具体Elasticsearch和Kibana安装和使用,参考之前的文章:Elasticsearch 的开源分析可视化工具--Kibana 安装 & 使用-CSDN博客

2、Elasticsearch中相关名词解释
名词说明
index(索引)相当于是数据库
mapping(映射)相当于数据库中表结构:字段名称、类型等
doc(行数据)相当于数据表中一条行数据
fields(字段)相当于数据表中的一列
settings(设置)设置索引的参数;例如:分片副本数等
3、索引操作
3.1、创建索引
# 1、基本语法
PUT <index_name>
# 2、创建索引指定主分片和副本数量
PUT test_es
{
  "settings": {
    "number_of_shards": 1,  //主分片数量为 1
    "number_of_replicas": 1 //每个主分片有一个副本
  }
}
 3.2、修改索引配置

        使用 _setting 只能修改允许动态修改的配置项

# 1、基本语法
PUT /<index_name>/_settings
# 2、修改副本数量为0
PUT test_es/_settings
{
  "number_of_replicas": 0
}
3.2.1、静态配置

        只能在创建索引时或在关闭状态的索引上设置

        重要的静态配置:number_of_shards:索引的主分片的个数,默认为 1,此设置只能在创建索引时设置。每个索引的分片的数量上限为 1024,这是一个安全限制,以防止意外创建索引,这些索引分片过多可能因资源分配而破坏集群的稳定性。export ES_JAVA_OPTS=“-Des.index. max_number_of_shards=128” 可以通过在属于集群的每个节点上指定系统属性来修改限制。

3.2.2、动态索引

        可以使用 _setting 接口实时修改的配置项。

        重要的动态配置

1)、number_of_replicas:每个主分片的副本数。默认为 1,允许配置为 0。

2)、refresh_interval:执行刷新操作的频率,默认为1s. 可以设置 -1 为禁用刷新。

3)、max_result_window:from + size 搜索此索引的最大值。默认为10000。

3.3、删除索引
DELETE <index_name>
 3.4、判断索引是否存在
HEAD <index_name>
4、文档(doc)操作
4.1、文档操作类型

        新增数据分为两种:create、index。

1)、create:如果在 PUT 数据的时候当前数据已经存在,则会返回失败(不存在则创建,存在则报错);

2)、index:如果在 PUT 数据的时候当前数据已经存在,则数据会被覆盖(可以是创建,也可以是全量替换)。

4.2、创建(create)
# 1、基础语法
PUT /<index_name>/_doc/<_id>?op_type=create
# 2、简化版本
PUT /<index_name>/_create/<_id>/
# 3、示例:
PUT test_es/_create/1  # PUT test_es/_doc/1?op_type=create
{
  "id":1,
  "name":"weilong"
}
4.3、索引(index) [创建或全量更新文档]
# 1、基础语法
PUT /<index_name>/_doc/<_id>?op_type=index
# 2、简化版本
PUT /<index_name>/_doc/<_id>
4.4、文档的增删改查
4.4.1、增(PUT和POST方式都可以)
PUT /<index_name>/_doc/<_id>  # 默认是 index 类型
PUT /<index_name>/_create/<_id>
POST /<index_name>/_doc/<_id>   # 不加<id>会随机生成id
POST /<index_name>/_create/<_id>   # 不加<id>会随机生成id
4.4.2、删
DELETE /<index_name>/_doc/<_id>
4.4.3、改(修改局部字段或者数据)
# 1、第一种(如果需要更新的操作没有改变数据,返回resulrt为noop,否则为updated)
POST /<index_name>/_update/<_id>
{
  "doc": {
    "<field_name>": "<field_value>"
  }
}
# 2、第二种(无论怎样都会更新,返回updated)
POST /<index_name>/_doc/<_id>
{
  "<field_name>": "<field_value>"
}
4.4.4、查
# 1、查询
GET <index>/_doc/<_id>
# 2、判断文档是否存在
HEAD  <index>/_doc/<_id>
# 3、仅查看元数据
GET <index>/_doc/<_id>?_source=false  # 默认为true,全部数据返回
# 4、仅查看数据,不查看元数据
GET <index>/_source/<_id>
4.4.5、批量查询

        可以针对不同的文档,指定不同的查询策略;也可以支持不同索引,不同策略。

# 1、基础语法(可以针对不同的文档,指定不同的查询策略)
GET /_mget
{
  "docs": [
    {
      "_index": "<index_name>",
      "_id": "<_id>"
    },
    {
      "_index": "<index_name>",
      "_id": "<_id>"
    }
  ]
}
# 2、简化语法(针对固定索引)
GET <index_name>/_mget
{
  "docs": [
    {
      "_id": "1",
      "_source": false
    },
    {
      "_id": "2",
      "_source": true
    }
  ]
}
5、总结

        本文详细介绍Elasticsearch中相关名词解释,以及Elasticsearch索引使用和文档的增删改查,帮助大家快速掌握Elasticsearch的基础使用。

        本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知其_所以然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值