代码编织梦想

ES是海量数据查询的搜索引擎,广泛用于全文检索、日志分析、监控分析等场景。

ES有三个特点轻松支持各种复杂的查询条件:

1.分布式实时文件存储,采用倒排索引及自定义打分、排序能力与丰富的分词插件等,实现复杂查询条件的全文检索需求。

2.可扩展性强:天然支持分布式存储,可简单实现上千台服务器的分布式横向火绒。

3.高可用,容灾性能好:通过主备节点及故障自动检测与恢复,实现高可用。

一、关于ES和MySQL的概念对比

ES7.x之前版本和MySQL的结构对比

MySQL 中的数据库(DataBase),等价于 ES 中的索引(Index)。

MySQL 中一个数据库下面有 N 张表(Table),等价于1个索引 Index 下面有 N 多类型(Type)。

MySQL 中一个数据库表(Table)下的数据由多行(Row)多列(column,属性)组成,等价于1个 Type 由多个文档(Document)和多 Field 组成。

MySQL 中定义表结构、设定字段类型等价于 ES 中的 Mapping。举例说明,在一个关系型数据库里面,Schema 定义了表、每个表的字段,还有表和字段之间的关系。与之对应的,在 ES 中,Mapping 定义索引下的Type的字段处理规则,即索引如何建立、索引类型、是否保存原始索引 JSON 文档、是否压缩原始 JSON 文档、是否需要分词处理、如何进行分词处理等。

MySQL 中的增 insert、删 delete、改 update、查 search 操作等价于 ES 中的增 PUT/POST、删 Delete、改 _update、查 GET。其中的修改指定条件的更新 update 等价于 ES 中的 update_by_query,指定条件的删除等价于 ES 中的 delete_by_query。

MySQL 中的 group by、avg、sum 等函数类似于 ES 中的 Aggregations 的部分特性。

MySQL 中的去重 distinct 类似 ES 中的 cardinality 操作。

MySQL 中的数据迁移等价于 ES 中的 reindex 操作。

ES7.X版本和MySQL的结构对比

二、ES相关接口操作

通过API操作es集群

https://endymecy.gitbooks.io/elasticsearch-guide-chinese/content/getting-started/exploring-cluster.html

我们可以发现访问Elasticsearch中数据的一个模式:

curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

这个REST访问模式普遍适用于所有的API命令,如果你能记住它,你就会为掌握Elasticsearch 开一个好头。

查看分类

curl http://xx.xx.xx.xx:9200/_cat

查看集群节点

curl http://10.64.3.9:9200/_cat/nodes

查看节点详情  

curl http://10.64.3.9:9200/_nodes/process?pretty

查看分片状态

curl http://xx.xx.xx.xx:9200/_cat/shards

统计索引数据量

curl http://xx.xx.xx.xx:9200/_cat/count/${index_name}

查看索引设置

 curl http://xx.xx.xx.xx:9200/${index_name}/_settings?pretty

查看索引个数和每个索引概况

 curl http://1xx.xx.xx.xx:9200/_cat/indices

注:indices为index的复数

查看集群分片分配详情

curl  -X  GET xx.xx.xx.xx:9200/_cluster/allocation/explain?pretty

为索引的每个分片设置副本数

curl    -X  PUT   http://xx.xx.xx.xx:9200/${index_name}/_settings  \

--header 'Content-Type: application/json'   \

 -d '{"index":{"number_of_replicas":1}}'

创建索引 

curl -X PUT http://xx.xx.xx.xx:9200/${index_name}

删除索引

 curl -X DELETE  http://xx.xx.xx.xx:9200/${index_name}

查看索引的mapping详情

curl http://xx.xx.xx.xx:9200/${index_name}/_mapping?pretty

查看集群状态

curl  -X GET -s   http://xx.xx.xx.xx:9200/_cluster/health?pretty

$ curl http://10.64.3.9:9201/_cat?

#############################

=^.^=

/_cat/allocation

/_cat/shards

/_cat/shards/{index}

/_cat/master

/_cat/nodes

/_cat/tasks

/_cat/indices

/_cat/indices/{index}

/_cat/segments

/_cat/segments/{index}

/_cat/count

/_cat/count/{index}

/_cat/recovery

/_cat/recovery/{index}

/_cat/health

/_cat/pending_tasks

/_cat/aliases

/_cat/aliases/{alias}

/_cat/thread_pool

/_cat/thread_pool/{thread_pools}

/_cat/plugins

/_cat/fielddata

/_cat/fielddata/{fields}

/_cat/nodeattrs

/_cat/repositories

/_cat/snapshots/{repository}

/_cat/templates

#####################################

三、参考

ES与MySQL的概念对比

https://www.cnblogs.com/smallzhen/p/14711478.html

通过API操作es集群

https://endymecy.gitbooks.io/elasticsearch-guide-chinese/content/getting-started/exploring-cluster.html

Elasticsearch Guide [7.5] » REST APIs

https://www.elastic.co/guide/en/elasticsearch/reference/7.5/rest-apis.html

通过API操作阿里云Elasticsearch

https://help.aliyun.com/document_detail/155919.html

elasticsearch-guide

https://endymecy.gitbooks.io/elasticsearch-guide-chinese/content/index.html

json测试数据生成器

https://www.json-generator.com

The most elegant way to create random data.

With help of powerful and flexible templates written in good old JavaScript.

Elasticsearch Guide [7.14] » REST APIs » Document APIs

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/michaelwoshi/article/details/119921404

【Sharding-JDBC】SpringBoot2 + sharding-jdbc实现分库分表读写分离-爱代码爱编程

文章目录 一、背景1.1 环境信息1.2 前言1.3 表结构信息1.4 数据库信息 二、代码实现2.1 概述2.2 主要代码2.2.1 pom.xml2.2.3 application.properties2.2

MySQL技术内幕:索引与算法(B+树的相关操作)-爱代码爱编程

asds索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会受到影响。而索引太少,对查询性能又会产生影响。要找到一个合适的平衡点,这对应用程序的性能至关重要。 asdsadasdasdasdsada

CTFHUB——SQL 报错注入三种方法全解-爱代码爱编程

背景 Sql注入主要有三种方法,extractvalue和updatexml函数形成的xpath报错,这算两种。还有一种就是floor实现的group by主键重复,这算另外一种。 本篇文章将对CTFHUB中的SQL报错注

设置mysql 的时区-爱代码爱编程

设置mysql 的时区 参考网址: https://www.cnblogs.com/xwgli/p/12908800.html 问题在线 docker中mysql时间和本地时间不对应的问题 doc

CTF[网鼎杯]Fakebook-爱代码爱编程

robots中发现 user.php.bak文件 下载文件 <?php class UserInfo { public $name = ""; public $age = 0; pub

现场面试41题实拍含答案!JVM+HashMap+多线程+Mysql!-爱代码爱编程

(1)java虚拟机内存模型 (2)内存溢出一般发生在哪个区?永久代会不会导致内存溢出? (3)动态加载类的框架了解哪些? (4)动态代理一般有哪几种实现方式?动态代理的应用场景有哪些? (5)栈会不会溢出?栈溢出一般抛什么异常?jvm在哪里设置栈的大小?设置的参数是什么? (6)用过哪些命令查看jvm的状态、堆栈信息? (7)jvm的垃圾回收

【Sharding-JDBC】SpringBoot2 + sharding-jdbc实现分库分表读写分离-爱代码爱编程

文章目录 一、背景1.1 环境信息1.2 前言1.3 表结构信息1.4 数据库信息 二、代码实现2.1 概述2.2 主要代码2.2.1 pom.xml2.2.3 application.properties2.2

MySQL技术内幕:索引与算法(B+树的相关操作)-爱代码爱编程

asds索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会受到影响。而索引太少,对查询性能又会产生影响。要找到一个合适的平衡点,这对应用程序的性能至关重要。 asdsadasdasdasdsada

【数据库】教你看懂SQLServer查询语句执行计划-爱代码爱编程

一、 使用SQL执行计划 看SQL语句执行计划有三种方式:①快捷键按Ctrl+L;②选中要执行的SQL然后点击右键,弹出的菜单里面选“显示估计的执行计划”;③按Ctrl+M打开显示执行计划窗口,选择每次执行SQL都会显示出相应的执行计划 二、 查看SQL执行计划  执行计划的图表是从右向左看的 三、 解读SQL执行计划 SQL Server查

第四章:集合运算-爱代码爱编程

第四章:集合运算 表的加减法 加法使用 UNION 代表的是并集,有点像set 的并集,会去掉重复的部分。 注意: 使用 UNION 对两个查询结果取并集, 和在一个查询中使用 WHERE 子句, 然后使用 OR 谓词

CTF[网鼎杯]Fakebook-爱代码爱编程

robots中发现 user.php.bak文件 下载文件 <?php class UserInfo { public $name = ""; public $age = 0; pub

基于Java的公司考勤系统-爱代码爱编程

系统使用技术:servlet 前端技术:js,css等 开发工具:eclipse 数据库:mysql5.7 项目介绍: 该系统使用Java语言,MVC模式,servlet技术,前端使用jsp视图,数据库使用mysql,系统功能完善,功能:打卡、考勤、事务管理、信息管理等。 部分功能展示: 下面我们来看看部分相关功能。 系统登陆: