1. 环境准备
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 Java (Elasticsearch 需要 Java 环境)
sudo apt install openjdk-11-jdk -y
# 验证 Java 安装
java -version2. 安装 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.deb3. 配置 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 elasticsearch5. 验证安装
# 检查 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
-Xmx1g2. 无法连接问题
# 检查 Elasticsearch 是否运行
sudo systemctl status elasticsearch
# 检查端口是否监听
netstat -tulpn | grep 9200
# 检查防火墙设置
sudo ufw status
sudo ufw allow 92003. 索引性能优化
// 在 PHP 中使用批量操作提高性能
$es->bulkInsert('large_index', $largeDataArray);
// 使用滚动查询处理大量数据
$params = [
'index' => 'large_index',
'scroll' => '1m',
'size' => 1000,
'body' => [
'query' => [
'match_all' => new \stdClass()
]
]
];
评论 (0)