淘先锋技术网

首页 1 2 3 4 5 6 7

ElasticSearch核心概念

索引(index)

ES存储数据的地方。文档集合

(索引命名:英文数字不能包含下划线)

一个索引对应一个映射。映射表示存储数据的格式:(类似于Mysql中的数据表形式)映射又指定了数据文档的格式。

索引中指定了映射(文档的格式)

索引是文档的集合

类型(type)

一种type就是一类表。比如用户表,角色表

ES7.x默认type为_doc

在这里插入图片描述

映射(mapping)

指定了文档的格式

定义每个字段的类型,字段所使用的分词器,相当于关系数据库的表结构

文档(document)

ES数据最小单元,常以json格式显示。一个document相当于关系型数据库的一行数据

倒排索引

一个倒排索引由文档中所有不重复的词列表构成。

对于其中每个词,对应一个包含它的文档id列表

在这里插入图片描述

操作ElasticSearch

两种方式操作ES

  1. Restful风格:restful都是到根据不同的请求方式就可以实现不同的结果
  2. java的代码:使用java的api调用完成。底层也是使用请求的形式

Restful

操作索引

这里先直接展示结果

在这里插入图片描述

测试(postman方式)

put进行添加

在这里插入图片描述

get: _all查询所有

在这里插入图片描述

查询多个,使用逗号隔开多个索引

在这里插入图片描述

Kibana测试

上面通过postman进行测试,发现是没问题的

kibana有着更好的结构和提示

在这里插入图片描述

操作映射

简单数据类型

字符串

在这里插入图片描述

数值

在这里插入图片描述

布尔

boolean

二进制

基本上不用

binary

复杂数据类型

数组:[]

对象:{}

kibana的测试

当然内部的属性名称不是固定的

在这里插入图片描述

操作文档

在这里插入图片描述

根据上图发现四种请求方式

  1. POST:新增
  2. Get:查询
  3. Delete:删除
  4. Put:存在就更新,不存在就添加。(必须带着id)

索引中指定了映射(文档的格式)

索引是文档的集合

分词器

分词器:将一段文本,按照一定逻辑,分析成多个词语。

(比如:华为手机:华为,手,手机)

ElasticSearch内置多个分词器

在这里插入图片描述

ElasticSearch内置的分词器对中文不是很友好(中文按照一个一个的拆分),所以我们接下来会介绍IK分词器

在这里插入图片描述

IK分词器

环境准备

ElasticSearch要使用ik,就要构建ik的jar包,这里要用到maven包管理工具,而maven需要java环境。

Elastic内置JDK,所以将JAVA_HOME设置为ElasticSearch内置的jdk

设置JAVA_HOME

进入vim编辑器
vim /etc/profile


文件的末尾添加
export JAVA_HOME=/usr/src/elasticsearch-7.4.0/jdk
export PATH=$PATH:${JAVA_HOME}/bin


保存后
重新加载该文件
source /etc/profile

安装Maven

下载Maven安装包

解压maven安装包

在这里插入图片描述

配置Maven

在这里插入图片描述

配置文件地内容

在这里插入图片描述

测试

在这里插入图片描述

安装ik分词器

下载IK

下载IK对应自己地ElasticSearch版本

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip

在这里插入图片描述

解压IK

由于治理是zip不是gz包,所以使用unzio命令进行解压

在这里插入图片描述

使用maven进行打包成jar文件

切换到
cd 解压后地目录
maven进行打包
mvn package

在这里插入图片描述

打包完成后

package执行完毕后会在当前目录下生成

/target/releases目录

该目录中存在一个压缩文件。

下面就是操作该文件即可

在这里插入图片描述

将压缩解压后地配置文件放入ElasticSearch中

视频地解释操作在这里

在这里插入图片描述

重启elasticSearch测试

加载日志可以发现加载进入了Ik插件

在这里插入图片描述

有关于日志异常可以不用去管

在这里插入图片描述

测试ik分词器

存在两种模式

  1. ik_smart:粗粒度
  2. ik_max_word:细粒度

在这里插入图片描述

在这里插入图片描述

查询文档

这里的操作性很多。

使用Kibana进行发送命令,更加友好,有着提示等功能

创建索引,指定分词器

在这里插入图片描述

如果添加文档时候带入了,映射没有指定的数据

在这里插入图片描述

会进行动态的生成映射。但是还是不值得推荐这么写

term查询

查询的条件字符串和词条完全匹配

在这里插入图片描述

match查询

会将差选条件进行分词查询。

再去查询出现的交集

在这里插入图片描述

这两个查询需要在多个示例中找到规律。不过看意思也是能感觉出来的。
只是这里我没有展示很多的示例图