【Elasticsearch】Elasticsearch 安装步骤与常见问题解决

小破孩
2025-11-13 / 0 评论 / 11 阅读 / 正在检测是否收录...

1. 环境准备

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Java (Elasticsearch 需要 Java 环境)
sudo apt install openjdk-11-jdk -y

# 验证 Java 安装
java -version

2. 安装 Elasticsearch

方法一:使用 APT 仓库安装(推荐)

# 导入 Elasticsearch GPG 密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

# 添加 Elasticsearch 仓库
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

# 更新并安装
sudo apt update
sudo apt install elasticsearch

方法二:手动下载安装

# 下载 Elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.0-amd64.deb

# 安装
sudo dpkg -i elasticsearch-7.17.0-amd64.deb

3. 配置 Elasticsearch

# 编辑配置文件
sudo vi /etc/elasticsearch/elasticsearch.yml

主要配置项:

# 集群名称
cluster.name: my-elasticsearch-cluster

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

# 数据存储路径
path.data: /var/lib/elasticsearch

# 日志存储路径
path.logs: /var/log/elasticsearch

# 网络绑定地址
network.host: 0.0.0.0

# HTTP 端口
http.port: 9200

# 集群初始主节点
cluster.initial_master_nodes: ["node-1"]

# 允许跨域访问(用于开发)
http.cors.enabled: true
http.cors.allow-origin: "*"

4. 启动和管理 Elasticsearch

# 启动 Elasticsearch 服务
sudo systemctl start elasticsearch

# 设置开机自启
sudo systemctl enable elasticsearch

# 查看服务状态
sudo systemctl status elasticsearch

# 重启服务
sudo systemctl restart elasticsearch

# 停止服务
sudo systemctl stop elasticsearch

5. 验证安装

# 检查 Elasticsearch 是否运行
curl -X GET "localhost:9200/"

# 查看集群健康状态
curl -X GET "localhost:9200/_cluster/health"

# 查看节点信息
curl -X GET "localhost:9200/_nodes"

正常响应示例:

{
  "name" : "node-1",
  "cluster_name" : "my-elasticsearch-cluster",
  "cluster_uuid" : "abcd1234",
  "version" : {
    "number" : "7.17.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "abcdef123456",
    "build_date" : "2022-01-01T00:00:00.000Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

6. 安全配置(可选)

# 安装 Elasticsearch 安全插件
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3

# 配置防火墙
sudo ufw allow 9200
sudo ufw allow 9300

二、常见问题解决

1. 内存不足问题

# 编辑 JVM 配置
sudo vi /etc/elasticsearch/jvm.options

# 调整内存设置(根据服务器内存调整)
-Xms1g
-Xmx1g

2. 无法连接问题

# 检查 Elasticsearch 是否运行
sudo systemctl status elasticsearch

# 检查端口是否监听
netstat -tulpn | grep 9200

# 检查防火墙设置
sudo ufw status
sudo ufw allow 9200

3. 索引性能优化

// 在 PHP 中使用批量操作提高性能
$es->bulkInsert('large_index', $largeDataArray);

// 使用滚动查询处理大量数据
$params = [
    'index' => 'large_index',
    'scroll' => '1m',
    'size' => 1000,
    'body' => [
        'query' => [
            'match_all' => new \stdClass()
        ]
    ]
];
0

评论 (0)

取消