ES相关介绍
ES安装(前提必须安装好了JDK)
- 单机版ES配置
- ES集群配置
- ES-head安装
- Kibana安装
- ik分词器安装
- ik安装
- ik分词测试
- ik_max_word分词测试
- ik_smart分词测试
- 不使用分词器分词的效果
ES相关介绍
ES全称ElasticSearch,是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
es相当于数据库,没有数据格式约束。
Elastic有一条完整的产品线及解决方案:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。
Elasticsearch(官网链接:https://www.elastic.co/cn/elastic-stack )是Elastic Stack 的核心技术。详细介绍参考官网
Elasticsearch具备以下特点:
- 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
- Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的
ES安装(前提必须安装好了JDK)
先贴个其他博主分享的下载的链接:
官网的下载地址 https://www.elastic.co/cn/downloads/elasticsearch window系统 百度网盘: https://pan.baidu.com/s/1ZjRyivbtE-bzLWzvBqfJgw 提取码: totp linux系统 百度网盘: https://pan.baidu.com/s/1oBsZRlJ-D8KfNLTrs1FVZA 提取码: t34k
如果链接失效了的话也可以用以下方法下载,不过很慢,当然也可以再去找其他的途径。根据需要选择版本号。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz
tar一下解压缩,放在自己的软件目录下:
目录介绍: bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等 config:配置文件目录 JDK:java环境 lib:依赖的jar,类库 logs:日志文件 modules:es相关的模块 plugins:可以自己开发的插件 data:这个目录没有,自己新建一下,后面要用 -> mkdir data,这个作为索引目录
单机版ES配置
修改核心配置文件elasticearch.yml
- 修改集群名称
- 修改当前的es节点名称
- 修改data数据保存地址和日志数据保存地址
- 绑定es网络ip
- 集群节点修改为之前的节点名称
然后打开jvm.options,添加如下配置
ES不允许使用root用户操作,需要为ES创建一个单独的用户
useradd esuser
chown -R esuser:esuser /usr/local/elasticsearch-7.5.1
su esuser
启动ES
./elasticsearch
启动错误解决
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3795] for user [esuser] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
需要切换到root用户修改配置
- 修改/etc/security/limits.conf 文件 增加下面内容
- soft nofile 65536
- hard nofile 131072
- soft nproc 2048
- hard nproc 4096
- 修改 /etc/sysctl.conf 增加 vm.max_map_count=262145 修改完后sysctl -p刷新一下 再次切换到esuser 进行启动,未报错jps一下 启动成功 访问IP:9200
ES集群配置
这位博主的文章,可以借鉴。 当然这位博主的启动方式选择了shell脚本,如果弄不明白shell,可以采用最原始的方式挨个启动即可./elasticsearch
ES-head安装
ES-head:操作ES数据库的客户端,生产环境中都用来连接远程ES服务器,查看ES
贴个GitHub的链接:https://github.com/mobz/elasticsearch-head 这个链接下写了很多个安装ES-head的方法,我使用的是直接在谷歌的插件商店中下载安装。
安装后在谷歌的扩展程序栏打开。
这个小图标就是了。使用时点击小图标进入管理界面,在链接框中输入想要链接的ES访问链接,连接成功后如下:
Kibana安装
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Kibana的版本需要和ES的版本对应,否则会不兼容
就像这样,启动时会一直报错和警告
版本对应关系可以查看:
https://www.elastic.co/cn/support/matrix#matrix_compatibility
总结一下就是ES是什么版本的,Kibana就是什么版本,需要保持ES和Kibana的版本号一致
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-linux-x86_64.tar.gz
tar解压缩,修改配置文件kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.32.128:9200"
kibana.index: ".kibana"
i18n.locale: "zh-CN"
./kibana启动,访问192.168.32.128:5601
ik分词器安装
之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器IK分词器了。
ik安装
从 ik 分词器项目仓库中下载 ik 分词器安装包,下载的版本需要与自己安装的Elasticsearch 版本匹配:https://github.com/medcl/elasticsearch-analysis-ik
或者可以访问 gitee 镜像仓库:https://gitee.com/mirrors/elasticsearch-analysis-ik
下载后放到/opt/software/elasticsearch-6.2.2/plugins目录下(该目录根据自己安装的ES目录自行调整)
安装后重启ES,测试http://192.168.32.128:9200/_cat/plugins
ik分词测试
ik分词器提供两种分词器: ik_max_word 和 ik_smart
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;
ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。
ik_max_word分词测试
POST _analyze
{
"analyzer":"ik_max_word",
"text":"我是中国人"
}
ik_smart分词测试
POST _analyze
{
"analyzer":"ik_smart",
"text":"我是中国人"
}
不使用分词器分词的效果
POST _analyze
{
"text":"我是中国人"
}