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

一、做者有话要说


elasticsearch是一个基于 Apache Lucene ™ 的开源搜索引擎。不管在开源仍是专有领域,Lucene 能够被认为是迄今为止最早进、性能最好的、功能最全的搜索引擎库。html

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

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

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

二、elasticsearch学习的步骤


2.1 elasticsearch的安装

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

2.2 es安装软件 elasticsearch head 安装

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

在这里插入图片描述
具体操做,能够参考我以前写的文章:https://blog.csdn.net/qq_34168515/article/details/108428406
服务器

2.3 Query DSL es特定语言

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

连接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html数据结构

对于mysql熟悉的人,能够理解为mysql的sql语句
在这里插入图片描述
es的很是多客户端,例如:

app

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):从服务器删除资源。

在这里插入图片描述

三、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)容许你在分⽚(潜在地,位于多个节点上)之上进行分布式的、并行的操做,进而提⾼性能/吞吐量。

四、java客户端 Java REST Client

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

在这里插入图片描述

相关文章
相关标签/搜索