最新 Elasticsearch + 中文分词器安装与配置教程(Ubuntu 环境)

在副业项目中,如果你需要实现全文搜索、日志分析、数据可视化等功能,Elasticsearch(简称 ES) 是一个非常强大的开源工具。它常被用于构建搜索引擎、监控系统、数据分析平台等,是很多技术副业项目的核心组件。

本文将带你一步步在 Ubuntu 环境下安装和配置 Elasticsearch 7.15.2,适合新手操作,保姆级教程,手把手带你跑通!

一、下载与解压

可以在这里查看最新下载链接:https://www.elastic.co/cn/

下载安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz

解压到指定目录

tar -xzf elasticsearch-7.15.2-linux-x86_64.tar.gz

二、安全配置(必须!)

Elasticsearch 不允许使用 root 用户启动,这是出于安全考虑。

创建专用用户

adduser es
passwd es  # 设置密码

修改目录权限

chown -R es:es /elasticsearch-7.15.2/

后续所有操作建议切换到es用户进行。

三、Elasticsearch 目录说明

  • bin:可执行文件在里面,运行es的命令就在这个里面
  • config:配置文件目录
  • lib:依赖的jar
  • logs:日志
  • modules:模块
  • plugins:可以自己开发的插件
  • data:索引目录

如果发现没有数据、日志目录,则手动创建数据和日志目录。

mkdir /elasticsearch-7.15.2/{data,logs}

再次确保权限

chown -R es:es /elasticsearch-7.15.2/

四、核心配置(elasticsearch.yml)

进入配置文件目录:

vim /elasticsearch-7.15.2/config/elasticsearch.yml

修改以下关键配置:

# 集群名称(可自定义)
cluster.name: my-projects-cluster

# 节点名称
node.name: node-1

# 数据存储路径(需提前创建)
path.data: /app/elasticsearch-7.15.2/data

# 日志路径
path.logs: /app/elasticsearch-7.15.2/logs

# 绑定 IP,0.0.0.0 表示允许所有 IP 访问,为了安全,可以指定允许访问的IP,并且可以设置多个
network.host: 0.0.0.0

# HTTP 端口
http.port: 9200

# 初始主节点(单节点模式下填自己)
cluster.initial_master_nodes: ["node-1"]

# 允许跨域访问(前端调试必备)
http.cors.enabled: true
http.cors.allow-origin: "*"

# 关闭自动创建索引(可选,提高安全性)
action.auto_create_index: false

五、JVM 与系统优化

JVM 配置(根据服务器硬件配置调整)

编辑 JVM 配置文件:

vim /elasticsearch-7.15.2/config/jvm.options

调整堆内存大小(根据服务器配置):

-Xms2g
-Xmx2g

建议设置为物理内存的一半,最大不超过 32GB。

Elasticsearch 安装教程,调整堆内存大小

系统资源限制

编辑 limits 配置:

vim /etc/security/limits.conf

添加:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

Elasticsearch 安装教程,配置系统资源限制

内核参数调优

vim /etc/sysctl.conf

添加:

vm.max_map_count=262145

Elasticsearch 安装教程,内核参数调优

保存后执行:

sysctl -p

六、JDK环境配置(采用自带的jdk)

声明:Elasticsearch自带的jdk启用Elasticsearch,如果用自己安装的java环境则不需要处理,可以跳过此步骤。

配置Elasticsearch启动脚本

cd elasticsearch-7.15.2/
vim bin/elasticsearch

在开头处添加以下配置

export JAVA_HOME=/your-path/Elasticsearch/elasticsearch-7.15.2/jdk
export PATH=$JAVA_HOME/bin:$PATH

Elasticsearch 安装教程,JDK环境配置

添加jdk判断

if [ -x "$JAVA_HOME/bin/java" ]; then
    JAVA="/your-path/Elasticsearch/elasticsearch-7.15.2/jdk/bin/java"
else
    JAVA=`which java`
fi

Elasticsearch 安装教程,添加jdk判断

注:官方推荐用自带的jdk

七、启动 Elasticsearch

切换到es用户:

su - es

进入 ES 目录:

cd /app/elasticsearch-7.15.2

方式一:前台启动(推荐首次使用)

./bin/elasticsearch

可以实时查看启动日志,排查问题。

方式二:后台启动(正式使用)

./bin/elasticsearch -d
正式环境推荐使用 supervisor 作为守护进程管理 ES

八、验证是否启动成功

查看进程

ps -ef | grep elasticsearch

检查端口

netstat -an | grep 9200

浏览器访问

打开浏览器,访问:

http://你的服务器IP:9200

如果看到类似以下 JSON 响应,说明成功了!

{
  "name" : "node-1",
  "cluster_name" : "my-projects-cluster",
  "cluster_uuid" : "abc123...",
  "version" : {
    "number" : "7.15.2",
    "build_flavor" : "default",
    "lucene_version" : "8.9.0"
  },
  "tagline" : "You Know, for Search"
}

🎉 恭喜你,Elasticsearch 已成功运行!

九、安装ik分词器

下载对应版本的 ik 中文分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases

解压(unzip)到 Elasticsearch 的 plugins 目录

重启ElasticSearch,看到loaded plugin [analysis-ik],说明 ik 中文分词器加载成功。

Elasticsearch 安装教程,安装 analysis-ik 中文分词器