Elasticsearch 8.5.0 安装
- Elasticsearch 简介
- Elasticsearch 8.6.0 安装
- 创建网络
- 拉取镜像
- 运行镜像
- 设置密码
- 修改kibana配置
- 绑定ES
- 代码绑定:
- 手动绑定:
- 配置ik分词器
- 扩展词词典
- 停用词词典
Elasticsearch 简介
- Elasticsearch(ES) 是一个基于 Apache Lucene 开源的分布式、高扩展、近实时的搜索引擎,主要用于海量数据快速存储,实时检索,高效分析的场景。通过简单易用的 RESTful API,隐藏 Lucene 的复杂性,让全文搜索变得简单。
- ES 功能总结有三点:
- 分布式 存储
- 分布式 搜索
- 分布式 分析
- 因为是分布式,可将海量数据分散到多台服务器上存储,检索和分析,只要是海量数据需要完成上面这三种操作的业务场景,一般都会考虑使用 ES,比如维基百科,Stack Overflow,GitHub 后台均有使用。
Elasticsearch 8.6.0 安装
使用 Docker 安装
创建网络
- 因为需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
- docker network create es-net
拉取镜像
- docker pull elasticsearch:8.6.0
- docker pull kibana:8.6.0
运行镜像
- 挂载目录都在 /var/lib/docker/volumes下的
- 启动es容器:
docker run -it -d \
--name es \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
-v es-config:/usr/share/elasticsearch/config \
--privileged \
--network es-net \
elasticsearch:8.6.0
- 访问网页 http://你的ip:9200/ 查看运启动结果
- 启动 kibana 容器
docker run -it -d \
-p 5601:5601 \
--name kibana \
-e ELASTICSEARCH_URL=http://127.0.0.1:9200 \
--network=es-net \
kibana:8.6.0
- 访问网页 http://你的ip:5601/ 查看运启动结果
设置密码
- 进入es容器
- docker exec -it es /bin/bash
- elasticsearch-setup-passwords interactive
- 如果不报错就万幸了,一个一个的设置密码。
- 如果报错:
- elasticsearch-reset-password -i -u
- 依次修改 elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user 的密码。
- 会提示你:Please confirm that you would like to continue [y/N]
- 输入 y
- 然后两次输入密码即可。
- elasticsearch-reset-password -i -u
修改kibana配置
- 先退出
- exit
- vim /var/lib/docker/volumes/kibana/usr/share/kibana/config/kibana.yml
- 在末尾插入
elasticsearch.username: "elastic"
# 记得修改密码为自己的
elasticsearch.password: "123456"
# 汉化
i18n.locale: "zh-CN"
- 保存退出
- 重启 kibana
- docker restart kibana
- 然后等1分钟刷新网页,发现已经 汉化成功了。
绑定ES
代码绑定:
- docker exec -it es /bin/bash
- elasticsearch-create-enrollment-token --scope kibana
- 把这一串签名 复制到 kibana 网页(服务器ip:5601)中。http://你的ip:5601/
- 记得要快,好像是30分钟的期限。
出现验证代码请求
- 退出es
- exit
- 进入 kibana 容器生成 code
-
docker exec -it kibana /bin/bash
-
bin/kibana-verification-code
-
复制这个 code 到网页上去,(直接复制粘贴,手打可能输不上去)
-
- 输入用户名密码:(用户名:elastic)
手动绑定:
-
手动设置:点击
-
输入 自己的网页 http://你的ip:9200/
-
输入用户名密码:(用户名:elastic)
-
进入 kibana 容器生成 code
-
docker exec -it kibana /bin/bash
-
bin/kibana-verification-code
-
复制这个 code 到网页上去,(直接复制粘贴,手打可能输不上去)
-
配置ik分词器
-
下载地址(注意版本一致性):https://github.com/medcl/elasticsearch-analysis-ik/archive/refs/tags/v8.6.0.zip
-
里面包含如下文件
-
解压,重命名为 ik
-
安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的
数据卷目录,通过下面命令查看:-
docker volume inspect es-plugins
-
说明plugins目录被挂载到了: /var/lib/docker/volumes/es-plugins/_data 这个目录中。
-
-
将 刚解压并改名的 ik文件 放到挂载文件夹里
-
重启容器:
- docker restart es
- docker restart kibana
-
进入容器:
- docker exec -it es /bin/bash
-
查看已安装分词器
- bin/elasticsearch-plugin list
- bin/elasticsearch-plugin list
扩展词词典
- 随着互联网的发展,“造词运动”也越发的频繁。出现了很多新的词语,在原有的词汇列表中并不存在。比
如:“奥力给” 等。为此 IK 分词器提供了扩展词汇的功能。 - 打开IK分词器 config目录(刚挂载进来的文件)
- 找到 IKAnalyzer.cfg.xml 文件并编辑
- 我的是:vim /var/lib/docker/volumes/es- plugins/_data/ik/config/IKAnalyzer.cfg.xml
- 在 < entry key=“ext_dict”> 标签中添加:ext.dic
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 * 添加扩展词典 -->
<entry key="ext_dict">ext.dic</entry>
</properties>
- 保存并退出
- 新建一个 ext.dic,里面存放词汇。可以参考config目录下复制一个配置文件进行修改
- 移动到 config 目录下
- cp main.dic ext.dic
- vim ext.dic
- 直接按 d + G,删除全部,再写入自己的关键词
- 注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
泰裤辣
家人们
- 重启 ES:
- docker restart es
- 测试效果
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "西安欧鹏太棒了,奥力给!"
}
停用词词典
- 在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等
敏感词语,那么我们在搜索时也应该忽略当前词汇。 - IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。
- 打开IKAnalyzer.cfg.xml 配置文件
- vim /var/lib/docker/volumes/es-plugins/_data/ik/config/IKAnalyzer.cfg.xml
- 在 < entry key=“ext_stopwords”> 标签中添加:stopword.dic
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">ext.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic</entry>
</properties>
- 新建一个 stopword.dic,里面存放词汇。可以参考config目录下复制一个配置文件进行修改
- 已经有就不用添加了
- 若没有:
- 移动到 config 目录下
- cp main.dic stopword.dic
- vim stopword.dic
- 直接按 d + G,删除全部,再写入自己的关键词