ubuntu18.04安装学习elasticsearch
一、java环境安装
1、更新软件包列表:
sudo apt-get update
2、安装openjdk-8-jdk:
sudo apt-get install openjdk-8-jdk
3、查看java版本,看看是否安装成功:
java -version
二、es安装包下载启动(本机使用的是es7.6.1)
安装包解压后,在bin目录下,终端直接运行文件
三、es可视化前端
1、下载可视化界面es head的插件
https://github.com/mobz/elasticsearch-head/
2、启动
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
# 国内加速 npm install --registry=https://registry.npm.taobao.org
npm run start
# 访问
http://localhost:9100/
3、解决跨域
# 配置es,在es的config文件夹下找到yml结尾的文件,结尾加入以下代码
http.cors.enabled: true
http.cors.allow-origin: "*"
4、解决同一局域网或外网访问
# 配置es,在es的config文件夹下找到yml结尾的文件
# 添加
http.host: 0.0.0.0
# 修改
network.host: 127.0.0.1
四、下载安装kibana
1、官网下载
https://www.elastic.co/cn/kibana
切忌:kibana版本要和Es一致
2、启动
#解压后,找到bin目录,同样在终端中直接运行 <kibana>文件
#访问5601端口,进行使用
http://localhost:5601/
3、汉化
在配置文件夹config中找到kibana.yml
修改代码:
#i18n.locale: "en"
i18n.locale: "zh-CN"
# 使同一局域网内可以被访问到,修改#server.host: "localhost"为
server.host: "0.0.0.0"
4、操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHy75a1w-1592484605736)(/home/bob/图片/2020-06-11 14-16-54屏幕截图.png)]
点击扳手的图表进行操作,进入操作面板
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oeuaUWu4-1592484605737)(/home/bob/.config/Typora/typora-user-images/image-20200611141841408.png)]
五、安装ik分词器
分词:既把一段内容划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,,比如“今天是周五“,会被拆分为"今",“天”,“是”,“周”,“五”,这显然不符合要求,所以需要安装中文分词器 ik 来解决这个问题
ik提供了两个分词算法:ik_smart 和ik_max_word,其中ik_max_word为最细颗粒度。
1、安装
https://github.com/medcl/elasticsearch-analysis-ik
# 安装包下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases
2、将下载的压缩包解压,也要有根es版本一致
3、进入es的插件文件夹
cd elasticsearch-7.6.1/plugins
# 新建文件家ik
mkdir ik
# 解压ik包到ik文件夹
4、重启es[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wniNkJFY-1592484605740)(/home/bob/图片/2020-06-11 15-33-51屏幕截图.png)]
ik被加载
命令查看
elasticsearch-plugin list
5、测试分词效果
最细颗粒度
如果不想某个词被拆开,就添加该词到分词器的字典中
6、分词器添加自己的词汇配置
在ik插件下的config文件夹找到IKAnalyzer.cfg.xml文件,打开编辑添加自己拓展的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">wang.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
在同级目录下创建相对应的文件,此练习为wang.dic
#一词占一行
中国
一二三
......
重启es,观察加载拓展的字典
分词热加载
同样是在ik插件下的config文件夹找到IKAnalyzer.cfg.xml文件,打开编辑添加远程拓展字典的url,下面是一个演示:
<?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">wang.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://47.102.10.84/hot.dic</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
我是用nginx作为http服务器的,nginx的配置为:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /hot.dic {
alias /root; 可以任意文件夹,前提是赋予755权限 chmod -R 755 /path
index hot.dic;
}
}
60s IK分词器会自动获取一次拓展字典