ElasticSearch7.x学习笔记
一、简介和下载
1、windows es下载安装
**Elasticsearch(ES)**是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
这里我选择了7.10.2,并使用迅雷下载,速度还可以
解压后目录结构
1 | bin #启动文件 |
进入bin目录双击elasticsearch.bat
,然后访问http://127.0.0.1:9200/
,成功出现以下json信息
1 | { |
2、可视化插件
1 | http.cors.enabled: true |
- google商店搜索ElasticSearch Head,安装插件
3、Kibana 下载与安装
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好Web 界面,可以帮助汇总、分析和搜索重要数据日志。
注意要和ES版本一致
解压打开bin/kibana.bat
浏览器http://localhost:5601/
汉化,在config/kibana.yml
下
1 | i18n.locale: "zh-CN" |
二、核心概念
- 索引
- 字段类型(mapping)
- 文档(documents)(倒排索引)
三、IK分词器
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比
如果要使用中文,建议使用ik分词器!
下载完成后放入es plugins中(注意版本匹配),之后重启es
ik_smart
最少切分,ik_max_word
最细粒度划分,穷尽词库可能
1 | // 在Kibana 控制台进行访问 |
ik分词器增加自己目录
在插件目录下config/IKAnalyzer.cfg.xml
进行配置
四、ES基础测试
1.创建一个索引
1 | # put /索引名/~类型名~/文档id |
- 字符串类型
text、keyword - 数值类型
long,integer,short,byte,double,float,half float,scaled float - 日期类型
date - te布尔值类型
boolean - 二进制类型
binary
2.映射,默认是_doc
1 | PUT /test2 |
3.更新(有值就更新)
1 | POST /test1/type1/1/_update |
4、简单查询
1 | GET /test1/_search?q=name:shawn |
5、复杂操作搜索
select(排序,分页,高亮,模糊查询,精准查询!),里面可以有很多查询操作,和mysql类似
1 | GET test1/_search |
text
类型可以被分词 keyword
不能被分词
- 匹配
- 按照条件匹配
- 精确匹配
- 区间范围匹配
- 匹配字段过滤
- 多条件查询
- 高亮查询
五、springboot整合es
1、引入maven依赖
我的springboot版本是2.4.2
,es版本是7.10.2
1 | <dependency> |
2、创建配置文件
创建config/ElasticSearchConfig.java
配置文件
1 |
|
3、创建实体类
创建pojo/User.java
类
1 |
|
4、测试文件
1 |
|