2.3(ElasticSearch)http操作和分词器
2021/12/30 23:12:29
本文主要是介绍2.3(ElasticSearch)http操作和分词器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- ElasticSearch核心概念
- 索引(index)
- 类型(type)
- 映射(mapping)
- 文档(document)
- 倒排索引
- 操作ElasticSearch
- Restful
- 操作索引
- 测试(postman方式)
- **put进行添加**
- **get: _all查询所有**
- **查询多个,使用逗号隔开多个索引**
- Kibana测试
- 操作映射
- 简单数据类型
- 字符串
- 数值
- 布尔
- 二进制
- 复杂数据类型
- kibana的测试
- 操作文档
- 分词器
- IK分词器
- 环境准备
- 设置JAVA_HOME
- 安装Maven
- 下载Maven安装包
- 配置Maven
- 测试
- 安装ik分词器
- 下载IK
- 解压IK
- 使用maven进行打包成jar文件
- 打包完成后
- 将压缩解压后地配置文件放入ElasticSearch中
- 重启elasticSearch测试
- 测试ik分词器
- 查询文档
- 创建索引,指定分词器
- term查询
- match查询
ElasticSearch核心概念
索引(index)
ES存储数据的地方。文档集合
(索引命名:英文数字不能包含下划线)
一个索引对应一个映射。映射表示存储数据的格式:(类似于Mysql中的数据表形式)映射又指定了数据文档的格式。
索引中指定了映射(文档的格式)
索引是文档的集合
类型(type)
一种type就是一类表。比如用户表,角色表
ES7.x默认type为_doc
映射(mapping)
指定了文档的格式
定义每个字段的类型,字段所使用的分词器,相当于关系数据库的表结构
文档(document)
ES数据最小单元,常以json格式显示。一个document相当于关系型数据库的一行数据
倒排索引
一个倒排索引由文档中所有不重复的词列表构成。
对于其中每个词,对应一个包含它的文档id列表
操作ElasticSearch
两种方式操作ES
- Restful风格:restful都是到根据不同的请求方式就可以实现不同的结果
- java的代码:使用java的api调用完成。底层也是使用请求的形式
Restful
操作索引
这里先直接展示结果
测试(postman方式)
put进行添加
get: _all查询所有
查询多个,使用逗号隔开多个索引
Kibana测试
上面通过postman进行测试,发现是没问题的
kibana有着更好的结构和提示
操作映射
简单数据类型
字符串
数值
布尔
boolean
二进制
基本上不用
binary
复杂数据类型
数组:[]
对象:{}
kibana的测试
当然内部的属性名称不是固定的
操作文档
根据上图发现四种请求方式
- POST:新增
- Get:查询
- Delete:删除
- 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分词器
存在两种模式
- ik_smart:粗粒度
- ik_max_word:细粒度
查询文档
这里的操作性很多。
使用Kibana进行发送命令,更加友好,有着提示等功能
创建索引,指定分词器
如果添加文档时候带入了,映射没有指定的数据
会进行动态的生成映射。但是还是不值得推荐这么写
term查询
查询的条件字符串和词条完全匹配
match查询
会将差选条件进行分词查询。
再去查询出现的交集
这两个查询需要在多个示例中找到规律。不过看意思也是能感觉出来的。
只是这里我没有展示很多的示例图
这篇关于2.3(ElasticSearch)http操作和分词器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享