Elasticsearch下载安装

1. 虚拟机环境准备

准备一台虚拟机
操作系统:CentOS 7.x 64 bit
客户端连接工具:FinalShell
关闭虚拟机的防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state # 查看防火墙

2. Elasticsearch Single-Node Mode部署

(1)下载Elasticsearch
地址: https://www.elastic.co/cn/downloads/elasticsearch 最新版本
下载: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-3-0 版本
在这里插入图片描述
(2)移动文件到安装目录

mv /root/ES/elasticsearch-7.3.0 /usr/elasticsearch

在这里插入图片描述
(3)配置Elasticsearch

1.编辑vim /usr/elasticsearch/config/elasticsearch.yml ,注意冒号后面有个空格

vim /usr/elasticsearch/config/elasticsearch.yml

单机安装请取消注释:node.name: node-1,否则无法正常启动。修改网络和端口,取消注释master节点,单机只保留一个node

node.name: node-1
network.host: 192.168.211.136
#
# Set a custom port for HTTP:
#
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

2.按需修改vim /usr/elasticsearch/config/jvm.options内存设置

vim /usr/elasticsearch/config/jvm.options

根据实际情况修改占用内存,默认都是1G,单机1G内存,启动会占用700m+然后在安装kibana后,基本上无法运行了,运行了一会就挂了报内存不足。 内存设置超出物理内存,也会无法启动,启动报错。

-Xms1g
-Xmx1g

3.添加es用户,es默认root用户无法启动,需要改为其他用户

useradd estest
修改密码
passwd estest

在这里插入图片描述
改变es目录拥有者账号

chown -R estest /usr/elasticsearch/

4.修改/etc/sysctl.conf

vim /etc/sysctl.conf

末尾添加:vm.max_map_count=655360
在这里插入图片描述
执行sysctl -p 让其生效
在这里插入图片描述
5.修改/etc/security/limits.conf

vim /etc/security/limits.conf

末尾添加:

* 			 soft 			nofile 			65536
*			 hard 			nofile 			65536
* 			 soft 			nproc 			4096
* 			 hard 			nproc 			4096

在这里插入图片描述
6.启动es
切换刚刚新建的用户

su estest

启动命令

/usr/elasticsearch/bin/elasticsearch

在这里插入图片描述
访问出现下面页面,安装成功
在这里插入图片描述

3 Elasticsearch API介绍

Elasticsearch提供了Rest风格的API,即http请求接口,而且也提供了各种语言的客户端API。
Rest风格API
文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
在这里插入图片描述
在这里插入图片描述
客户端API
Elasticsearch支持的语言客户端非常多:https://www.elastic.co/guide/en/elasticsearch/client/i
ndex.html
,我们在实战时将使用到Java客户端API
在这里插入图片描述

ElasticSearch没有自带图形化界面,我们可以通过安装ElasticSearch的图形化插件,完成图形化界面的效果,完成索引数据的查看,比如可视化插件Kibana。

安装配置kibana

1.什么是Kibana

Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。
在这里插入图片描述

2.安装Kibana

1)下载Kibana
在这里插入图片描述
如何下载历史版本
https://www.elastic.co/cn/downloads/past-releases#kibana
在这里插入图片描述

  1. 安装kibana
    root账户下操作
    tar -zxvf kibana-7.3.0-linux-x86_64.tar.gz
    mv /root/kibana-7.3.0-linux-x86_64 /usr/kibana/
    改变es目录拥有者账号
chown -R estest /usr/kibana/

还需要设置访问权限

chmod -R 777 /usr/kibana/

修改配置文件

vim /usr/kibana/config/kibana.yml

修改端口,访问ip,elasticsearch服务器ip

server.port: 5601
server.host: "0.0.0.0"
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://192.168.211.136:9200"]

配置完成启动:

切换用户
su estest
./bin/kibana(路径:/usr/kibana)

可以在root用户启动,不切estest

./bin/kibana --allow-root

没有error错误启动成功:
在这里插入图片描述

访问ip:5601,即可看到安装成功
在这里插入图片描述
已全部安装完成,然后可以接入数据使用了。
3) kidbana使用页面
选择左侧的DevTools菜单,即可进入控制台页面:
在这里插入图片描述
4 )扩展kibana dev tools快捷键:
ctrl+enter 提交请求
ctrl+i 自动缩进

Elasticsearch集成IK分词器

1. 集成IK分词器

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版
开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Lucene为应用主体的,结合词典分词
和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于
Lucene项目,同时提供了对Lucene的默认优化实现。

IK分词器3.0的特性如下:
1)采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。
2)采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。
3)支持个人词条的优化的词典存储,更小的内存占用。
4)支持用户词典扩展定义。
5)针对Lucene全文检索优化的查询分析器IKQueryParser;采用歧义分析算法优化查询关键字的搜索
排列组合,能极大的提高Lucene检索的命中率。
下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.3.0
下载插件并安装(安装方式一)
1)在elasticsearch的bin目录下执行以下命令,es插件管理器会自动帮我们安装,然后等待安装完成:

cd /usr/elasticsearch
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip

2)下载完成后会提示 Continue with installation?输入 y 即可完成安装
在这里插入图片描述

3)重启Elasticsearch 和Kibana

上传安装包安装 (安装方式二)
1)在elasticsearch安装目录的plugins目录下新建 analysis-ik 目录

#新建analysis-ik文件夹
mkdir analysis-ik
#切换至 analysis-ik文件夹下
cd analysis-ik
#上传资料中的 elasticsearch-analysis-ik-7.3.0.zip
#解压
unzip elasticsearch-analysis-ik-7.3.3.zip
#解压完成后删除zip
rm -rf elasticsearch-analysis-ik-7.3.0.zip

2)重启Elasticsearch 和Kibana

测试案例
IK分词器有两种分词模式:ik_max_word和ik_smart模式。
1)ik_max_word (常用)
会将文本做最细粒度的拆分
在这里插入图片描述

2)ik_smart
会做最粗粒度的拆分
在这里插入图片描述

2 扩展词典使用

扩展词:就是不想让哪些词被分开,让他们分成一个词。比如上面的江大桥
自定义扩展词库
1)进入到 config/analysis-ik/(插件命令安装方式) 或 plugins/analysis-ik/config(安装包安装方式) 目录
下, 新增自定义词典

vim xiaoyu_ext_dict.dic

输入 :江大桥
在这里插入图片描述

2)将我们自定义的扩展词典文件添加到IKAnalyzer.cfg.xml配置中
vim IKAnalyzer.cfg.xml

在这里插入图片描述
3)重启Elasticsearch(分词中多了江大桥)
在这里插入图片描述

3 停用词典使用

停用词:有些词在文本中出现的频率非常高。但对本文的语义产生不了多大的影响。例如英文的a、
an、the、of等。或中文的”的、了、呢等”。这样的词称为停用词。停用词经常被过滤掉,不会被进行
索引。在检索的过程中,如果用户的查询词中含有停用词,系统会自动过滤掉。停用词可以加快索引的
速度,减少索引库文件的大小。
自定义停用词库
1)进入到 config/analysis-ik/(插件命令安装方式) 或 plugins/analysis-ik/config(安装包安装方式) 目录
下, 新增自定义词典

vim lagou_stop_dict.dic

输入

的
了
啊

2)将我们自定义的停用词典文件添加到IKAnalyzer.cfg.xml配置中
3)重启Elasticsearch

4 同义词典使用

语言博大精深,有很多相同意思的词,我们称之为同义词,比如“番茄”和“西红柿”,“馒头”和“馍”等。在
搜索的时候,我们输入的可能是“番茄”,但是应该把含有“西红柿”的数据一起查询出来,这种情况叫做
同义词查询。
注意:扩展词和停用词是在索引的时候使用,而同义词是检索时候使用。
配置IK同义词
Elasticsearch 自带一个名为 synonym 的同义词 filter。为了能让 IK 和 synonym 同时工作,我们需要
定义新的 analyzer,用 IK 做 tokenizer,synonym 做 filter。听上去很复杂,实际上要做的只是加一段
配置。
1)创建/config/analysis-ik/synonym.txt 文件,输入一些同义词并存为 utf-8 格式。例如

番茄,西红柿
china,中国
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐