最清晰易懂的Elasticsearch操作手册|收藏夹必备

本文详细介绍了Elasticsearch(ES)的基础操作,包括索引创建、删除、修改副本数,以及基础的增删改查。重点讲解了DSL查询、聚合查询和批量操作,还分享了一些实用技巧,如分页查询、浏览器查询结果美化等。适合大数据开发人员参考学习。
摘要由CSDN通过智能技术生成

写在前面:我是「且听风吟」,目前是一名大数据开发工程师,热爱大数据开源技术,喜欢分享自己的所学所悟,现阶段正在从头梳理大数据体系的知识,以后将会把时间重点放在Spark和Flink上面。

如果你也对大数据感兴趣,希望在这个行业一展拳脚。欢迎关注我,我们一起努力,一起学习。博客地址:https://ropledata.blog.csdn.net

博客的名字来源于:且听风吟,静待花开。也符合我对技术的看法,想要真正掌握一门技术就需要厚积薄发的毅力,同时保持乐观的心态。

你只管努力,剩下的交给时间!

在这里插入图片描述

一、前言

本文版本说明:

  1. ElasticSearch版本:7.7 (目前最新版)
  2. Kibana版本:7.7(目前最新版)

前面两篇文章咱们已经对Elasticsearch进行了精细的讲解,第一篇围绕Elasticsearch最新版进行了上万字的详细解析,相信看过的朋友对Elasticsearch及kibana等工具的极速安装配置印象深刻,也至少会对Elasticsearch有一个入门的掌握。第二篇主要围绕Elasticsearch的分词器进行讲解,并重点分析了ik中文分词器。

前文链接

  1. ElasticSearch最新版快速入门详解
  2. ElasticSearch中文分词,看这一篇就够了

本文咱们将对Elasticsearch原生的RESTful API操作进行详尽的归纳分析,并会对复杂的常用查询知识点进行一一举例展开,重点会对DSL查询,聚合查询,批量操作等进行举例解析,并会提供一些Elasticsearch的使用技巧。相信学会了这些知识和技巧之后,以后在工作中不管应对多么复杂的场景,都可以得心应手,迅速的根据RESTful API写出完美的代码。好了,废话不多说,让我们开始吧!

注意:下文咱们把ElasticSearch简称为ES,对大家可能出现的疑问进行标红并解释,并会对容易混淆的地方加以声明。

在这里插入图片描述


二、索引操作

2.1、创建索引

比如咱们创建一个3副本2分片的名为ropledata的索引:

PUT /ropledata
{
  "settings": { 
    "number_of_shards": "2", 
    "number_of_replicas": "3"
  } 
}

2.2、删除索引

和删除数据库一样,索引也是可以删除的,只需要执行如下命令就可以删除名为ropledata的索引:

DELETE /ropledata

2.3、修改索引副本数

这里要注意,索引的分片不允许修改的,咱们只能修改索引的副本数量,比如想把副本数量修改为2个,只需要执行:

PUT ropledata/_settings 
{ 
  "number_of_replicas" : "2" 
}

三、基础增删改查

3.1、插入数据

咱们平时进行基础的数据插入时,可以分为两种情况。一种是指定文档的id,一种是不指定。

注意:不指定的时候,ES会帮我们自动生成,不过不容易记忆,因此推荐指定id的方式插入数据。

疑问一:这里说的id是大括号里面的id吗?

不是的,这点容易混淆,这里包括后面查询或者删除时候用到的ID是创建文档时候指定或者ES自动生成的那个id,那个是唯一id,也就是下面示例里的101,而不是文档里面大括号的那个叫id 字段!文档里面的文档字段是可以没有id 的。

  1. 不指定id

    POST /ropledata/_doc/
    {
      "id":1,
      "name":"且听_风吟",
      "page":"https://ropledata.blog.csdn.net",
      "say":"欢迎点赞,收藏,关注,一起学习" 
    }
    
  2. 指定id

    POST /ropledata/_doc/101 
    {
      "id":1,
      "name":"且听_风吟",
      "page":"https://ropledata.blog.csdn.net",
      "say":"欢迎点赞,收藏,关注,一起学习" 
    }
    

3.2、删除数据

如果咱们想删除刚才创建的ropledata索引下的id为101的文档,可以使用如下命令:

DELETE /ropledata/_doc/101

3.3、更新数据

这里大家要特别注意,ES里的文档是不可以修改的,但是可以覆盖,所以ES修改数据本质上是对文档的覆盖

ES对数据的修改分为全局更新局部更新,下面咱们进行对比说明:

  1. 全局更新

    PUT /ropledata/_doc/101
    { 
      "id":1,
      "name":"且听_风吟",
      "page":"https://ropledata.blog.csdn.net",
      "say":"再次欢迎点赞,收藏,关注,一起学习" 
    }
    

    然后大家可以多全局更新几次,会发现每次全局更新之后这个文档的_version都会发生改变!
    在这里插入图片描述

  2. 局部更新

评论 119
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值