ElasticSearch:基础操作

一、ES的概念及使用场景
ElasticSearch是一个分布式,高性能、高可用、可伸缩、RESTful 风格的搜索和数据分析引擎。通常作为Elastic Stack的核心来使用

我们通过将ES 和 mysql对比来更好的理解 ES,ES和mysql相关的基本概念的对比表格如下:

ESMySql
字段
文档一行数据
索引数据库

二、基础使用
前面我们已经介绍过了ES 是RESTful 风格的系统,所以我们需要先掌握RESTful 的四个关键词:
PUT(修改),
POST(添加),
DELETE(删除),
GET(查询)。
其中在ES里面PUT和POST的界限并不是很分明,有时候PUT也作为添加

1、索引操作
1)创建一个空索引
如下代码,咱们创建了一个1副本5分片的 test 索引,然后咱们可以在Elasticsearch Head里刷新一下,并查看索引的信息:

PUT /test
{"settings": { "number_of_shards": "5", "number_of_replicas": "1"} 
}

通过 kibana 中的 dev_tools 操作 ES
在这里插入图片描述
在谷歌浏览器的elasticsearch-head浏览数据
在这里插入图片描述
2)修改副本
咱们如果对刚才创建的索引副本数量不满意,可以进行修改,注意:分片不允许修改。

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

在这里插入图片描述
3)删除索引
当这个索引不想用了,可以进行删除,执行如下命令即可,执行成功后,刷新ElasticSearch Head可以看到刚才创建的ropledata索引消失了:

DELETE /test

2、数据增删改查
1)插入数据
插入数据的时候可以指定id,如果不指定的话,ES会自动帮我们生成。我们以指定id为例,如下代码是我们创建了一个101的文档,创建成功后,可以在Elasticsearch Head的数据浏览模块里看到这些数据,代码及演示如下:

指定id

POST /test/_doc/101
{"name": "li","age": 1,"say": "hello" 
}

在这里插入图片描述

POST /test/_doc/
{"name": "li2","age": 2,"say": "hello2" 
}

在这里插入图片描述
可以发现,不指定id后,会自动生成
在这里插入图片描述
2)修改数据
这里大家要特别注意,ES里的文档是不可以修改的,但是可以覆盖,所以ES修改数据本质上是对文档的覆盖。ES对数据的修改分为全局更新和局部更新
全局更新

PUT /test/_doc/101
{ "name": "li11111","age": 1,"say": "hello" 
}

可以看到 version +1了
在这里插入图片描述
局部更新

POST /test/_update/101 
{"doc":{"age": 100} 
}

这时候我们可以多次去执行上面的局部更新代码,会发现除了第一次执行,后续不管又执行了多少次,version都不再变化,当然如果 age数值变化后再次执行 version还是 +1的
在这里插入图片描述

性能对比:
全局更新本质上是替换操作,即使内容一样也会去替换;
局部更新本质上是更新操作,只有遇到新的东西才更新,没有新的修改就不更新;
局部更新比全局更新的性能好,因此推荐使用局部更新。

3)查询数据

GET /test/_doc/vOQs744B_yXDkWv7KG8_

在这里插入图片描述

4)删除数据

DELETE /test/_doc/101

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630490.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询服务器上所有SQL SERVER数据库中是否包含某个字段,且该字段是否包含某个值

公司有一堆相同类别的客户,每个客户都部署了相同的一套系统,每套系统对应一个相同结构的数据库,昨天老板让查一下手机号码177xxxxx248是属于哪个客户的客户。 我要查的这个号码来自于oa_member表中的phone字段,我需要对所有的数据…

基于Spring Boot+Vue的校园网上店铺,开启便捷购物新模式

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

Java内存模型和 JVM 内存运行时

文章目录 前言一、什么是Java 的内存模型?二、什么是 JVM 的运行时数据区Java8 之前和之后的区别JVM 内存模型JVM 内存区域JVM 内存垃圾回收JVM如何判断哪些对象不在存活?JVM运行过程中如何判断哪些对象是垃圾? JVM 垃圾回收Java8 中的 jvm如…

leetcode刷题(python)——(四)

01.02.03 练习题目(第 04 天) 1. 0048. 旋转图像 1.1 题目大意 描述:给定一个 n n n \times n nn 大小的二维矩阵(代表图像) m a t r i x matrix matrix。 要求:将二维矩阵 m a t r i x matrix matr…

华为手机无法弹出wifi上网认证页面处理

华为手机无法弹出wifi上网认证页面 连wifi后跳到上图界面卡住,不跳转到单位的上网认证界面。 打开手机的设置应用,点击上面的WLAN选项。 点击上面的更多WLAN设置选项。 关闭WLAN安全检测就可以正常弹出上网认证界面, 正常弹出上网认证界面&a…

OpenGL:图元

OpenGL的图元 点 GL_POINTS: 将顶点绘制成单个的点 线 GL_LINES:将顶点用于创建线段,2个点成为一条单独的线段。如果顶点个数是奇数,则忽略最后一个。 顶点:v0, v1, v2, v3, … , vn,线段:…

# 从浅入深 学习 SpringCloud 微服务架构(一)基础知识

从浅入深 学习 SpringCloud 微服务架构(一)基础知识 1、系统架构演变: 1)单体应用架构。如电商项目。 用户管理、商品管理、订单管理,在一个模块里。 优点:开发简单,快速,适用于…

ASCII 码值表

字符ASCII码值048149250351452553654755856957 大写字母A-Z对应的ASCII码值:65-90 小写字母a-z对应的ASCII码值:97-122 小写字母-32大写字母 ch-32;//将ch小写->大写 以上是常用的关系,不用死记忆,对照表格,可以方便理解编程。 将字符…

NAND数据恢复的方案

NAND Flash是固态硬盘(SSD)的核心数据存储。然而,NAND Flash因其物理特性和工作原理,存在一定的内在脆弱性,尤其是在数据存储的长期可靠性方面。 比特错误是指在读取NAND Flash时,原本存储的二进制位&#…

20232937文兆宇 2023-2024-2 《网络攻防实践》实践六报告

20232937文兆宇 2023-2024-2 《网络攻防实践》实践六报告 1.实践内容 (1)动手实践Metasploit windows attacker 任务:使用metasploit软件进行windows远程渗透统计实验 具体任务内容:使用windows Attacker/BT4攻击机尝试对wind…

JDK8、JDK11、JDK17和JDK21这几个版本更新的主要特性

文章目录 1.JDK82.JDK113.JDK174,JDK21 1.JDK8 JDK8是Java的一个重大更新版本,引入了一系列新特性和改进,主要包括: Lambda表达式:Lambda表达式允许我们以简洁、函数式的方式编写代码,使代码更易于理解和维护。-Stream…

WordPress的全面解析:为什么它是创建博客和网站的首选

在当前的数字化时代,无论是个人博客还是企业网站,都需要一个强大而灵活的平台以支撑其内容和用户交互。WordPress作为全球最流行的内容管理系统(CMS),以其强大的功能、灵活的定制性和广泛的用户基础,成为了…