文章目录
前言
记载Elasticsearch 的安装
Elasticsearch 的使用:https://blog.youkuaiyun.com/weixin_43287895/article/details/126465306
Elasticsearch
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。Elasticsearch 是索引、搜索和分析魔法发生的地方。(百度百科)
安装
ElasticSearch安装
需要JDK1.8以上
ElasticSearch客户端
Kibana 界面工具
Java的jar包要版本对应和ElasticSearch
Window 的目录
bin 启动文件
config 配置文件
log4j2 日志配置文件
jvm.options JVM配置文件,电脑不好的话,需要修改
elasticsearch.yml elasticsearch配置文件 9200 跨域
lib 相关jar包
modules 功能模块
plugins 插件 ik分词器
logs 日志
bin/ElasticSearch.bat运行即可,9200端口
Docker安装elasticsearch
# 创建网络
docker network create elastic
#拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.16.0
# docker 安装
docker run -d --name es01 --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" docker.elastic.co/elasticsearch/elasticsearch:7.16.0
安装可视化插件head插件
地址:https://github.com/mobz/elasticsearch-head
需要安装node.js
然后按github安装即可
运行在9100
npm install
npm run start
Docker安装head
# docker安装
docker run -d --name es-head -p 9100:9100 docker.io/mobz/elasticsearch-head:5
docker exec -it es01 /bin/bash
yum install vim
vim config/elasticsearch.yml
#修改为下面代码,注意冒号后有一个空格
#这是yml的固定格式,在vim中可以使用ctrl+n进行代码补全
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
#退出es容器
exit
#重启es容器
docker restart es01
解决head插件不显示数据
# 进入head里
apt update
apt install vim
cd usr/src/app/_site
vim vendor.js
# 显示行号
:set nu
# 跳转6886行
:6886
# 修改6886行
contentType: "application/x-www-form-urlencoded
改成
contentType: “application/json;charset=UTF-8”
# 跳转6886行
:7573
# 修改7573行
var inspectData = s.contentType === “application/x-www-form-urlencoded”
改成
var inspectData = s.contentType === “application/json;charset=UTF-8”
跨域问题解决
打开ElasticSeacher.yml
http.cors.enabled: true # 开启
http.cors.allow-origin: "*" # 允许所有人
重启ES服务,再次连接
可以将es当成一个数据库(可以建立索引(库),文档(数据))
head可以当做一个数据展示工具,后面所有的查询在Kibana做
安装Kibana
针对于ElasticSearch的开源分析及可视化平台,用来搜索,查看交互存储在ElasticSearch索引中的数据
Kibana要和ElasticSearch版本一致
解压,运行bat
运行在5601
访问测试即可
开发工具测试
postman,curl或者head或者谷歌浏览器插件
汉化
在config配置中修改kibana.yml
i18n为zh-CN
原因是在x-pack中有i18n的json文件,i18n是国际化,在x-pack的plugins中有translations文件夹,文件夹中translations包含zh-CN.json
Docker安装Kibana
# docker 安装
docker pull docker.elastic.co/kibana/kibana:7.16.0
# 运行
docker run -d --name kib01 --net elastic -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://172.21.0.2:9200 docker.elastic.co/kibana/kibana:7.16.0
docker exec -it kib01 /bin/bash
vi /usr/share/kibana/config/kibana.yml
# 修改
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://172.21.0.2:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN
#设置kibana中文显示,也可以不加
# 需要重启
docker restart kib01
# 出现Kibana server is not ready yet
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service
安装IK分词器
即把一段中文或者别的划分成一个一个关键字,我们在搜索的时候会把自己的信息进行分词,会把数据库中的或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如:你好,会被分成,你,好。
IK分词器提供了两个分词算法:ik_smart和ik_max_word
ik_smart为最少切分
ik_max_word 为最细粒度划分
下载完毕后,放到elasticsearch/plugins
重启观察ES,可以看到日志输出有ik分词器加载
cmd命令,可以通过elasticsearch plugins list,查看加载的插件
使用kibana测试
ik_smart
ik_max_word
Docker安装ik分词器
# docker 安装
docker exec -it es01 /bin/bash
apt-get update
apt-get -y install wget
cd plugins/
mkdir ik/
cd ik/
#我们在官网中找到与es相对应版本的ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.16.0/elasticsearch-analysis-ik-7.16.0.zip
unzip elasticsearch-analysis-ik-7.16.0.zip
rm elasticsearch-analysis-ik-7.16.0.zip
#退出容器,最后重启es即可
docker restart es01
自己需要的词,需要自己加到分词器的字典中
ik分词器增加自己的配置
在ik的config中
IKAnalyzer.cfg.xml文件是ik的配置
需要自己写一个dic文件,如mydic.dic
里面写自己的词汇
然后在IKAnalyzer.cfg.xml配置识别
<entry key="ext_dict">mydic.dic</entry>
之后重启es