SpringBoot集成Elasticsearch 安装(一)

502 阅读2分钟

版本说明

Elasticsearch7.x默认对应jdk版本为11

  1. JDK1.8
  2. SpringBoot2.2.10.RELEASE
  3. Elasticsearch6.8.20

Elasticsearch安装

  1. Elasticsearch默认不能使用root账号启动,所以先创建账号,并切换账号为es
# 创建账号es
adduser es

# 设置账号es密码
passwd es

# 切换账号到es
su es
  1. 下载Elasticsearch6.8.20安装包
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.20.tar.gz

  2. 解压elasticsearch-6.8.20.tar.gz
    tar -zxvf elasticsearch-6.8.20.tar.gz

  3. 修改配置
    vim elasticsearch-6.8.20/config/elasticsearch.yml

image.png

按实际情况修改上图中的配置

cluster.name 集群名称
node.name 节点名称
path.data 保存数据路径
path.logs 日志路径
network.host 允许访问的主机,设置成0.0.0.0 表示允许所有网络
http.port 端口号
  1. 创建上面配置的path.datapath.logs相应目录
  2. 启动
# cd到elasticsearch安装目录下的bin路径
./elasticsearch  #直接启动,退出后会停止
# ./elasticsearch -d  #加上-d参数启动表示后台启动,命令退出后不会停止

如果启动时报以下错误
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
则切换到root账号执行vim /etc/sysctl.conf在文件末尾添加vm.max_map_count=262144然后保存退出,执行sysctl -p让配置生效。
最后切换回es账号,重新启动即可

  1. 添加中文分词器analysis-ik
  • 需要注意对应版本号,尽量使用和安装的elasticsearch版本一致
  • 本例中elasticsearch的版本为6.8.20 分词器analysis-ik中没有一致的版本号,所以选用的是elasticsearch-analysis-ik-6.8.14,版本不同此处会有问题后面会讲
  • 下载分词器 wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.14/elasticsearch-analysis-ik-6.8.14.zip
  • 在elasticsearch安装目录下的plugins路径下创建文件夹analysis-ik-6.8.14
  • 将下载的分词器解压到上面创建的目录下
    unzip -d elasticsearch/plugins/analysis-ik-6.8.14 elasticsearch-analysis-ik-6.8.14.zip
  • 重启elasticsearch,由于elasticsearch没有直接停止的命令。所以查看其进程id,ps -ef|grep elasticsearch。然后通过kill -9杀掉进程再启动./elasticsearch -d
  1. 修改分词器中elasticsearch的版本号配置
  • 上述第7步中直接启动会失败。查看日志会发现以下错误
    Plugin [analysis-ik] was built for Elasticsearch version 6.8.14 but version 6.8.20 is running
  • 原因是elasticsearch和分词器analysis-ik版本不一致
  • 解决方法修改分词器的配置文件plugin-descriptor.properties
    vim elasticsearch/plugins/analysis-ik-6.8.14/plugin-descriptor.properties
    找到最后一行将elasticsearch.version=6.8.14改为elasticsearch.version=6.8.20

SpringBoot集成Elasticsearch的实际使用见下篇