elasticsearch7.x教程必看教你如何快速入门,精心归纳

1、作者有话要说


elasticsearch是一个基于 Apache Lucene ™ 的开源搜索引擎。无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

想学习好elasticsearch,首先第一步,就是阅读官方文档。目前es的版本有2.x,5.x,6.x,7.x,可见elasticsearch更新多快!!!

官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
在这里插入图片描述

点进去看,有些同学,一下子就头晕了。因为是全英语的,不知道如何下手。我写这一篇的原因,就是教你如何学习elasticsearch官方文档的!!!
在这里插入图片描述

2、elasticsearch学习的步骤


2.1 elasticsearch的安装

网上的资料过多,碍于篇幅,略过

2.2 es安装软件 elasticsearch head 安装

网上的资料过多,碍于篇幅,略过

在这里插入图片描述
具体操作,可以参考我之前写的文章:https://blog.csdn.net/qq_34168515/article/details/108428406

2.3 Query DSL es特定语言

这个是es专门的查询语言,也是操作es必备的知识,这个是需要掌握的

链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html

对于mysql熟悉的人,可以理解为mysql的sql语句
在这里插入图片描述
es的非常多客户端,例如:

Java REST Client [7.9] — other versions
Java API [7.9] — other versions
JavaScript API [7.x] — other versions
Ruby API [7.x] — other versions
Go API
.NET API [7.x] — other versions
PHP API [7.x] — other versions
Perl API
Python API
eland Client
Rust API
Community Contributed Clients

Query DSL为上面客户端的使用提供参考。

2.4 Mapping

elasticsearch和mysql进行对比

在这里插入图片描述
主要是讲述,mapping对应elasticsearch的数据结构

链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

在这里插入图片描述
elasticsearch 虽然是非关系型数据库,但是也是需要很强的数据结构,而且数据结构mapping一旦初始化之后,就无法进行修改的。如果要进行修改,只能重新创建索引,也就是重新创建库

使用elasticsearch head查看索引的数据结构

在这里插入图片描述

2.5 Aggregations聚合查询

在这里插入图片描述

首先,我们必须明确什么是聚合查询

有点类似于 SQL 中的 group by 再加一些函数方法的操作。但是要强大很多。

2.6 elasticsearch rest api

rest api,顾名思义,就是restful风格接口的api,这个是对于我们开发来说,是非常重要的

常⽤的HTTP动词有下面五个

GET(SELECT):从服务器取出资源(⼀项或多项)。
POST(CREATE):在服务器新建⼀个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。

在这里插入图片描述

3、elasticsearch的专业术语


可以参考我之前的文章:https://blog.csdn.net/qq_34168515/article/details/108315484

我挑几个重要的来进行说明

在这里插入图片描述

3.1 索引(index)

⼀个索引就是⼀个拥有几分相似特征的⽂档的集合。 相当于MySQL中的数据库

3.2 映射类型(mapping type)

在⼀个索引中,你可以定义⼀种或多种类型。⼀个类型是你的索引的⼀个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有⼀组共同字段的⽂档定义⼀个类型。 类似数据库表 在7.0之后,类型只有⼀种 _doc

3.3 ⽂档(document)

⼀个⽂档是⼀个可被索引的基础信息单元。相当于MySQL中的数据表中的数据,每⼀条数据就是⼀个⽂档

3.4 分片和副本(shard & replica)

⼀个索引可以存储超出单个结点硬件限制的⼤量数据。⽐如,⼀个具有10亿⽂档的索引占据1TB的磁盘 空间,⽽任⼀节点都没有这样⼤的磁盘空间;或者单个节点处理搜索请求,响应太慢。为了解决这个问 题,Elasticsearch提供了将索引划分成多份的能⼒,这些份就叫做分⽚。当你创建⼀个索引的时候,你 可以指定你想要的分⽚的数量。每个分⽚本身也是⼀个功能完善并且独⽴的“索引”,这个“索引”可以被 放置到集群中的任何节点上。

分片很重要,主要有两⽅⾯的原因:

1)允许你⽔平分割/扩展你的内容容 量。

2)允许你在分⽚(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提⾼性能/吞吐量。

4、java客户端 Java REST Client

官方地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34168515/article/details/108549851