# Elasticsearch 7.17.17程序下载手册
# 一、概述
# 背景
协同全文检索服务实际由 SearchService微服务(致远提供) 和 ElasticSearch分布式搜索引擎(开源项目) 2个服务组成。
在V10.0之前版本,产品将两个服务整合在一起,可以直接安装,开箱即用。
鉴于部分用户对ElasticSearch引擎版本有要求,自协同V10.0SP1版本开始,产品不再提供二合一安装程序,改为由用户自行下载ElasticSearch引擎服务(及分词器),V10.0SP1开始,生产盘只提供SearchService微服务安装包。
本手册提供Elasticsearch 7.17.17版本引擎和分词器的下载方法,对ES没有特别要求的用户,可以参考本手册制作脚本自动下载。
简述工具使用流程:
1、参考本手册制作自动下载脚本,下载文件可能需要一定时间(20分钟到几个小时不等)
2、参考对应版本的全文检索部署手册说明,先安装部署SearchService微服务(致远提供)
3、参考对应版本的全文检索部署手册说明,将脚本下载的ElasticSearch程序和分词器合并到全文检索服务中
4、参考对应版本的全文检索部署手册说明,做配置,启动验证
部署视频: 全文检索V10.0SP1版本部署视频可访问 协同云-赋能中心-致远学院-搜索“V10.0 SP1全文检索Linux命令行部署演示 (opens new window)”
# 工具支持类型
本脚本提供一站式自动化下载,可一键完成 Elasticsearch 7.17.17 及其中文分词插件、相关依赖的下载、解压、拷贝及配置。支持:
| 支持类型 | 说明 | 快速链接 |
|---|---|---|
| Windows 版本 | 支持可选下载Windows版本、Linux X86版本、信创ARM版本组件包 | 【快捷跳转】 |
| Linux、信创 版本 | 支持可选下载Windows版本、Linux X86版本、信创ARM版本组件包 | 【快捷跳转】 |
协同全文检索微服务依赖ElasticSearch 7.17.17物料如下:
- elasticsearch-7.17.17搜索引擎核心程序包
- 分词器一:analysis-ik-7.17.17
- 分词器二:analysis-pinyin-7.17.17
- 分词器三:analysis-stconvert-7.17.17
- ES运行所需SDK若干
如使用本手册“脚本自动化下载ES”方案,可自动下载以上全部资源包,并且自动将其整理成全文检索程序运行所需的目录结构。
# 二、脚本自动化下载ES(推荐)
推荐使用脚本自动化下载ElasticSearch相关程序,脚本可以一键下载,并且支持断点续传(若脚本下载中断 ,可重新运行脚本即可自动续传,已下载的部分不会重复下载)。
不同操作系统参考对应章节解决方案。
# Windows系统脚本下载ES
如当前是Windows服务器部署全文检索,可参考如下方式在Windows下载ES程序。
1、安装前准备:检查当前Windows系统是否安装了curl命令:
1. 按下Win + R,输入cmd打开命令提示符
2. 输入curl --version,如果显示版本信息则说明已安装
3. 如果未安装则自行网上搜索“Windows安装配置curl解决方案”,先安装curl命令再继续
2、安装前准备:检查当前Windows系统是否能访问如下地址(脚本会访问如下地址下载资源),如无法访问则开通访问权限,或使用一台能连外网的Win电脑执行脚本运行下载:
- 地之一 https://www.elastic.co/
- 地址二 https://release.infinilabs.com/
- 地址三 https://repo1.maven.org/
3、找一个具备一定存储空间的盘符,新建一个空文件夹保存脚本和后续下载的文件,比如 D:\ElasticSearch
4、在上一步文件夹里,创建一个名为 download_elasticsearch.bat 的文件,将下方“Windows脚本代码”放入文件中保存
5、以管理员身份运行 download_elasticsearch.bat 脚本(鼠标右键 → “以管理员身份运行”)
6、运行过程不可关闭窗口,等待下载完成,所有文件将保存至当前bat脚本目录
7、脚本下载完后,能看到如下文件:

8、以上ElasticSearch程序准备好后,参考对应版本的全文检索部署手册做后续的部署配置。
Windows 脚本内容(将如下代码块编辑到download_elasticsearch.bat中,形成标准bat脚本):
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title Elasticsearch 7.17.17 一键下载与部署
echo ============================================
echo Elasticsearch 7.17.17 一键下载与部署脚本
echo ============================================
REM =====================================================
REM 1. 选择平台
REM =====================================================
echo.
echo 请选择要下载的 Elasticsearch 平台版本:
echo 1) Linux x86_64
echo 2) Linux aarch64
echo 3) Windows x86_64
echo.
set /p PLATFORM_CHOICE=请输入选项编号 [1-3]:
if "%PLATFORM_CHOICE%"=="1" (
set "ES_PKG=elasticsearch-7.17.17-linux-x86_64.tar.gz"
set "ES_URL=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz"
) else if "%PLATFORM_CHOICE%"=="2" (
set "ES_PKG=elasticsearch-7.17.17-linux-aarch64.tar.gz"
set "ES_URL=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-aarch64.tar.gz"
) else if "%PLATFORM_CHOICE%"=="3" (
set "ES_PKG=elasticsearch-7.17.17-windows-x86_64.zip"
set "ES_URL=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-windows-x86_64.zip"
) else (
echo 无效选项,请输入 1-3
pause
exit /b 1
)
echo.
echo 已选择平台: %ES_PKG%
echo.
echo 下载地址: %ES_URL%
echo ============================================
REM =====================================================
REM 2. 路径初始化
REM =====================================================
set "BASE_DIR=%~dp0"
cd /d "%BASE_DIR%"
set "DOWNLOAD_DIR=%BASE_DIR%download"
set "ELASTIC_DIR=%DOWNLOAD_DIR%\elasticsearch"
set "TOKENIZER_DIR=%DOWNLOAD_DIR%\tokenizer"
set "SDK_DIR=%DOWNLOAD_DIR%\sdk"
set "SEARCHSERVICE_DIR=%BASE_DIR%Searchservice"
set "ES_DIR=%SEARCHSERVICE_DIR%\ES"
set "SEARCH_LIBS=%SEARCHSERVICE_DIR%\search\searchservice\libs"
for %%D in ("%DOWNLOAD_DIR%" "%ELASTIC_DIR%" "%TOKENIZER_DIR%" "%SDK_DIR%" "%ES_DIR%\elasticsearch\plugins" "%SEARCH_LIBS%") do (
if not exist "%%~D" mkdir "%%~D"
)
REM =====================================================
REM 3. 其他下载地址(插件 + SDK)
REM =====================================================
set "IK_URL=https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.17.17.zip"
set "PINYIN_URL=https://release.infinilabs.com/analysis-pinyin/stable/elasticsearch-analysis-pinyin-7.17.17.zip"
set "STCONVERT_URL=https://release.infinilabs.com/analysis-stconvert/stable/elasticsearch-analysis-stconvert-7.17.17.zip"
set SDK_URL1=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/7.10.2/elasticsearch-7.10.2.jar
set SDK_URL2=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-cli/7.10.2/elasticsearch-cli-7.10.2.jar
set SDK_URL3=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-core/7.10.2/elasticsearch-core-7.10.2.jar
set SDK_URL4=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-geo/7.10.2/elasticsearch-geo-7.10.2.jar
set SDK_URL5=https://repo1.maven.org/maven2/org/elasticsearch/client/elasticsearch-rest-client/7.10.2/elasticsearch-rest-client-7.10.2.jar
set SDK_URL6=https://repo1.maven.org/maven2/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.10.2/elasticsearch-rest-high-level-client-7.10.2.jar
set SDK_URL7=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-secure-sm/7.10.2/elasticsearch-secure-sm-7.10.2.jar
set SDK_URL8=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-ssl-config/7.10.2/elasticsearch-ssl-config-7.10.2.jar
set SDK_URL9=https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-x-content/7.10.2/elasticsearch-x-content-7.10.2.jar
REM =====================================================
REM 4. 下载阶段(检测本地已有文件则移动)
REM =====================================================
echo [1/4] 检查 Elasticsearch 安装包...
call :download_to_dir "%ES_URL%" "%ELASTIC_DIR%"
echo [2/4] 检查分词插件...
call :download_to_dir "%IK_URL%" "%TOKENIZER_DIR%"
call :download_to_dir "%PINYIN_URL%" "%TOKENIZER_DIR%"
call :download_to_dir "%STCONVERT_URL%" "%TOKENIZER_DIR%"
echo [3/4] 检查 SDK JAR 包...
for /L %%I in (1,1,9) do (
call :download_to_dir "!SDK_URL%%I!" "%SDK_DIR%"
)
REM =====================================================
REM 5. 解压 Elasticsearch(支持 zip 与 tar.gz,静默模式)
REM =====================================================
echo 解压 Elasticsearch...
cd /d "%ELASTIC_DIR%"
set "ES_SRC_DIR="
set "FOUND_PKG="
for %%F in ("%ELASTIC_DIR%\%ES_PKG%") do (
if exist "%%~fF" (
set "FOUND_PKG=%%~fF"
echo 正在解压: %%~nxF
if /I "%%~xF"==".zip" (
echo 使用 PowerShell Expand-Archive 解压 ZIP ...
powershell -NoProfile -Command ^
"try { Expand-Archive -Force '%%~fF' '%ELASTIC_DIR%' >$null 2>&1; exit 0 } catch { exit 1 }" >nul 2>&1
) else (
echo 使用 PowerShell tar 解压 TAR.GZ ...
powershell -NoProfile -Command ^
"try { tar -xzf '%%~fF' -C '%ELASTIC_DIR%' >$null 2>&1; exit 0 } catch { exit 1 }" >nul 2>&1
if errorlevel 1 (
echo tar 解压失败,尝试兼容模式...
powershell -NoProfile -Command ^
"try { Expand-Archive -Force '%%~fF' '%ELASTIC_DIR%' >$null 2>&1; Write-Host 'Expand-Archive 成功' } catch { Write-Host '无法解压,请手动解压此文件!' }" >nul 2>&1
)
)
)
)
REM 如果上面没找到(防护),尝试通配解压目录下任意 elasticsearch-* 包
if not defined FOUND_PKG (
for %%F in ("%ELASTIC_DIR%\elasticsearch-*") do (
if exist "%%~fF" (
echo 发现包 %%~nxF,尝试解压...
if /I "%%~xF"==".zip" (
powershell -NoProfile -Command "Expand-Archive -Force '%%~fF' '%ELASTIC_DIR%' >$null 2>&1" >nul 2>&1
) else (
powershell -NoProfile -Command "tar -xzf '%%~fF' -C '%ELASTIC_DIR%' >$null 2>&1" >nul 2>&1
)
)
)
)
for /d %%D in ("%ELASTIC_DIR%\elasticsearch-*") do (
if exist "%%D\bin" set "ES_SRC_DIR=%%~fD"
)
if not defined ES_SRC_DIR (
echo 未找到解压后的 Elasticsearch 目录!
echo.
echo 请检查 %ELASTIC_DIR% 中是否存在正确的包,或手动将包放到脚本同目录后重新运行。
pause
exit /b 1
)
echo 拷贝 Elasticsearch 文件到 %ES_DIR%\elasticsearch ...
robocopy "%ES_SRC_DIR%" "%ES_DIR%\elasticsearch" /E >nul
if %errorlevel% LSS 8 (
echo Elasticsearch 文件拷贝完成!
) else (
echo 拷贝 Elasticsearch 出错!(robocopy errorlevel=%errorlevel%)
)
REM =====================================================
REM 6. 解压并安装插件
REM =====================================================
echo 安装分词插件...
for %%Z in ("%TOKENIZER_DIR%\elasticsearch-analysis-*.zip") do (
if exist "%%~fZ" (
set "ZIP_NAME=%%~nZ"
powershell -NoProfile -Command "Expand-Archive -Force '%%~fZ' '%TOKENIZER_DIR%\!ZIP_NAME!'"
)
)
set "PLUGIN_PATH=%ES_DIR%\elasticsearch\plugins"
robocopy "%TOKENIZER_DIR%\elasticsearch-analysis-ik-7.17.17" "%PLUGIN_PATH%\analysis-ik" /E /XD config >nul
robocopy "%TOKENIZER_DIR%\elasticsearch-analysis-pinyin-7.17.17" "%PLUGIN_PATH%\analysis-pinyin" /E >nul
robocopy "%TOKENIZER_DIR%\elasticsearch-analysis-stconvert-7.17.17" "%PLUGIN_PATH%\analysis-stconvert" /E >nul
REM =====================================================
REM 7. 拷贝 SDK Jar
REM =====================================================
echo 拷贝 SDK jar 包到 %SEARCH_LIBS%...
for %%J in ("%SDK_DIR%\*.jar") do (
copy /Y "%%~fJ" "%SEARCH_LIBS%\" >nul
)
REM =====================================================
REM 8. 写入 Elasticsearch 配置文件
REM =====================================================
set "CONFIG_FILE=%ES_DIR%\elasticsearch\config\elasticsearch.yml"
if not exist "%ES_DIR%\elasticsearch\config" mkdir "%ES_DIR%\elasticsearch\config"
echo 写入 Elasticsearch 配置...
(
echo cluster.name: elasticsearch
echo path.data: ../base/data
echo xpack.ml.enabled: false
echo ingest.geoip.downloader.enabled: false
) > "%CONFIG_FILE%"
echo 配置文件已写入:%CONFIG_FILE%
echo.
echo( ==============================================
echo( Elasticsearch 7.17.17 部署完成!
echo.
echo( 请手动将脚本部署完成的Searchservice文件夹复制并
echo.
echo( 覆盖到安装目录下的同名Searchservice文件夹中!!!
echo( ==============================================
echo.
pause
exit /b 0
REM ==============================
REM 下载函数(支持断点续传+本地检测+失败提示)
REM ==============================
:download_to_dir
set "URL=%~1"
set "DIR=%~2"
if not defined URL exit /b 0
if not exist "%DIR%" mkdir "%DIR%"
pushd "%DIR%"
for /f "tokens=* delims=" %%F in ('powershell -NoLogo -Command "(Split-Path '%URL%' -Leaf)"') do set "FILE=%%F"
REM 如果当前目录下已有该文件,直接移动过去
if exist "%BASE_DIR%%FILE%" (
echo 检测到本地文件: %FILE%,移动到 %DIR%
move /Y "%BASE_DIR%%FILE%" "%DIR%\" >nul
popd
exit /b 0
)
REM 如果下载目录已有文件,则尝试断点续传/继续
if exist "%FILE%" (
echo 检测到已存在文件: %FILE%
echo 尝试断点续传...
curl -f -L -C - -O "%URL%"
) else (
echo 开始下载: %FILE%
curl -f -L -C - -O "%URL%"
)
REM 检测 curl 返回值
if errorlevel 1 (
echo.
echo *** 下载失败: %URL% ***
echo 请检查网络或手动下载该文件并放到: %DIR%\%FILE%
popd
exit /b 1
)
echo 下载完成: %FILE%
popd
exit /b 0
# Linux或信创系统脚本下载ES
如当前是Linux或信创操作系统部署全文检索,可参考如下方式在服务器下载ES程序。
1、安装前准备:检查当前Linux或信创系统是否安装了curl命令:
1. 命令行录入 curl --version 如果显示版本信息则说明已安装
2. 如果未安装则自行网上搜索“Linux安装配置curl解决方案”,先安装curl命令再继续
2、安装前准备:检查当前Linux或信创系统是否能访问如下地址(脚本会访问如下地址下载资源),如无法访问则开通访问权限,或使用一台能连外网的Win电脑执行脚本运行下载:
- 地之一 https://www.elastic.co/
- 地址二 https://release.infinilabs.com/
- 地址三 https://repo1.maven.org/
3、找一个具备一定存储空间的盘符,新建一个专门存储ES的空白目录,比如 /data/es_script
4、在上一步文件夹里,创建一个名为 download_elasticsearch.sh 的文件,将下方“Linux或信创脚本代码”放入文件中保存(vi、vim命令)
5、执行命令运行脚本 bash download_elasticsearch.sh
6、运行过程不可关闭窗口,等待下载完成,所有文件将保存至当前sh脚本目录
7、脚本下载完后,能看到如下文件:

8、以上ElasticSearch程序准备好后,参考对应版本的全文检索部署手册做后续的部署配置。
Linux 脚本内容(将如下代码块编辑到download_elasticsearch.sh中,形成标准sh脚本):
#!/bin/bash
set -e
BASE_DIR=$(cd "$(dirname "$0")" && pwd)
cd "$BASE_DIR"
echo "============================================"
echo " Elasticsearch 7.17.17 一键部署脚本"
echo "============================================"
# ----------------------------------------------------
# 路径定义
# ----------------------------------------------------
DOWNLOAD_DIR="$BASE_DIR/download"
ELASTIC_DIR="$DOWNLOAD_DIR/elasticsearch"
TOKENIZER_DIR="$DOWNLOAD_DIR/tokenizer"
SDK_DIR="$DOWNLOAD_DIR/sdk"
SEARCHSERVICE_DIR="$BASE_DIR/Searchservice"
ES_DIR="$SEARCHSERVICE_DIR/ES"
SEARCH_LIBS="$SEARCHSERVICE_DIR/search/searchservice/libs"
mkdir -p "$ELASTIC_DIR" "$TOKENIZER_DIR" "$SDK_DIR" "$ES_DIR/elasticsearch/plugins" "$SEARCH_LIBS"
# ----------------------------------------------------
# 手动选择系统架构与下载包
# ----------------------------------------------------
echo
echo "请选择要下载的 Elasticsearch 平台版本:"
echo " 1) Linux x86_64 "
echo " 2) Linux aarch64 "
echo " 3) Windows x86_64 "
read -p "请输入选项编号 [1-3]:" choice
case "$choice" in
1)
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz"
;;
2)
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-aarch64.tar.gz"
;;
3)
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-windows-x86_64.zip"
;;
*)
echo "无效选择,默认使用 Linux x86_64 包"
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz"
;;
esac
# ----------------------------------------------------
# 插件与 SDK 下载地址
# ----------------------------------------------------
IK_URL="https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.17.17.zip"
PINYIN_URL="https://release.infinilabs.com/analysis-pinyin/stable/elasticsearch-analysis-pinyin-7.17.17.zip"
STCONVERT_URL="https://release.infinilabs.com/analysis-stconvert/stable/elasticsearch-analysis-stconvert-7.17.17.zip"
SDK_URLS=(
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/7.10.2/elasticsearch-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-cli/7.10.2/elasticsearch-cli-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-core/7.10.2/elasticsearch-core-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-geo/7.10.2/elasticsearch-geo-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/client/elasticsearch-rest-client/7.10.2/elasticsearch-rest-client-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.10.2/elasticsearch-rest-high-level-client-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-secure-sm/7.10.2/elasticsearch-secure-sm-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-ssl-config/7.10.2/elasticsearch-ssl-config-7.10.2.jar"
"https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-x-content/7.10.2/elasticsearch-x-content-7.10.2.jar"
)
# ----------------------------------------------------
# 通用下载函数(支持手动包检测)
# ----------------------------------------------------
download_to_dir() {
local url=$1
local dir=$2
mkdir -p "$dir"
cd "$dir"
local file=$(basename "$url")
# 脚本当前目录是否已有该文件
if [[ -f "$BASE_DIR/$file" ]]; then
echo " 当前目录检测到 $file,跳过下载"
mv -f "$BASE_DIR/$file" "$dir/"
cd "$BASE_DIR"
return
fi
# 远程文件大小(用于断点续传判断)
local remote_size local_size
remote_size=$(curl -sI "$url" | awk '/Content-Length/ {print $2}' | tr -d '\r')
if [[ -f "$file" ]]; then
local_size=$(stat -c%s "$file")
if [[ "$local_size" -eq "$remote_size" ]]; then
echo " $file 已完整存在"
else
echo " $file 不完整,开始断点续传..."
curl -L -C - -O "$url"
fi
else
echo " 开始下载: $file"
curl -L -O "$url"
fi
local_size=$(stat -c%s "$file" 2>/dev/null || echo 0)
if [[ "$local_size" -lt 1024 ]]; then
echo " $file 下载失败,重试..."
rm -f "$file"
curl -L -O "$url"
fi
cd "$BASE_DIR"
}
# ----------------------------------------------------
# 下载(ES、插件、SDK)
# ----------------------------------------------------
download_to_dir "$ES_URL" "$ELASTIC_DIR"
download_to_dir "$IK_URL" "$TOKENIZER_DIR"
download_to_dir "$PINYIN_URL" "$TOKENIZER_DIR"
download_to_dir "$STCONVERT_URL" "$TOKENIZER_DIR"
for url in "${SDK_URLS[@]}"; do
download_to_dir "$url" "$SDK_DIR"
done
# ----------------------------------------------------
# 解压 Elasticsearch
# ----------------------------------------------------
echo " 解压 Elasticsearch..."
cd "$ELASTIC_DIR"
ES_FILE=$(ls elasticsearch-*.tar.gz 2>/dev/null | head -n 1 || true)
if [[ -z "$ES_FILE" ]]; then
ES_FILE=$(ls elasticsearch-*.zip 2>/dev/null | head -n 1 || true)
fi
if [[ -z "$ES_FILE" ]]; then
echo " 未找到 Elasticsearch 压缩包"
exit 1
fi
if [[ "$ES_FILE" == *.tar.gz ]]; then
if ! gzip -t "$ES_FILE" >/dev/null 2>&1; then
echo " Elasticsearch 压缩包损坏,重新下载..."
rm -f "$ES_FILE"
download_to_dir "$ES_URL" "$ELASTIC_DIR"
fi
tar -xzf "$ES_FILE" || { echo " 解压失败"; exit 1; }
else
unzip -oq "$ES_FILE"
fi
ES_SRC_DIR=$(find . -maxdepth 1 -type d -name "elasticsearch-*" | head -n 1)
rsync -a "$ES_SRC_DIR/" "$ES_DIR/elasticsearch/" >/dev/null 2>&1
# ----------------------------------------------------
# 安装分词插件
# ----------------------------------------------------
echo " 安装分词插件..."
PLUGIN_PATH="$ES_DIR/elasticsearch/plugins"
mkdir -p "$PLUGIN_PATH"
cd "$TOKENIZER_DIR"
for zipfile in elasticsearch-analysis-*.zip; do
[[ -f "$zipfile" ]] || continue
dir_name=$(basename "$zipfile" .zip)
echo " 解压 $zipfile ..."
unzip -oq "$zipfile" -d "$TOKENIZER_DIR/$dir_name"
done
echo " 拷贝插件文件到 $PLUGIN_PATH ..."
rsync -a --exclude='config' "$TOKENIZER_DIR/elasticsearch-analysis-ik-7.17.17/" "$PLUGIN_PATH/analysis-ik/" || echo " 未找到 IK 插件"
rsync -a "$TOKENIZER_DIR/elasticsearch-analysis-pinyin-7.17.17/" "$PLUGIN_PATH/analysis-pinyin/" || echo " 未找到拼音插件"
rsync -a "$TOKENIZER_DIR/elasticsearch-analysis-stconvert-7.17.17/" "$PLUGIN_PATH/analysis-stconvert/" || echo " 未找到简繁插件"
if [[ -d "$PLUGIN_PATH/analysis-ik" && -d "$PLUGIN_PATH/analysis-pinyin" && -d "$PLUGIN_PATH/analysis-stconvert" ]]; then
echo " 所有分词插件安装完成"
else
echo " 部分插件未成功安装,请检查 Tokenizer 目录"
fi
# ----------------------------------------------------
# 拷贝 SDK jar
# ----------------------------------------------------
echo " 拷贝 SDK jar 包..."
cp -f "$SDK_DIR"/*.jar "$SEARCH_LIBS/" || echo " 没有找到 SDK jar 文件"
# ----------------------------------------------------
# 写入 Elasticsearch 配置文件
# ----------------------------------------------------
echo " 写入 Elasticsearch 配置..."
CONFIG_FILE="$ES_DIR/elasticsearch/config/elasticsearch.yml"
mkdir -p "$(dirname "$CONFIG_FILE")"
if [[ ! -f "$CONFIG_FILE" ]]; then
touch "$CONFIG_FILE"
fi
cat > "$CONFIG_FILE" <<EOF
cluster.name: elasticsearch
path.data: ../base/data
xpack.ml.enabled: false
ingest.geoip.downloader.enabled: false
EOF
echo " Elasticsearch 配置已写入: $CONFIG_FILE"
echo
echo "==============================================="
echo " 所有组件下载、解压与部署已完成!"
echo " 请手动将脚本部署完成的Searchservice文件夹复制并 "
echo " 覆盖到安装目录下的同名Searchservice文件夹中!!! "
echo "==============================================="
# 三、手工下载ES(不推荐)
正常情况均推荐使用脚本自动下载ElasticSearch,只有在环境特殊的情况下,才建议使用如下方式进行“手工下载”:
将所有部署包和脚本放在同一个目录下,还可继续执行脚本,进行自动化解压,文件拷贝及配置修改,最终部署结果如以上脚本的结果图一致。
手工下载地址,:
# Elasticsearch下载(三选一下载)(请根据您的操作系统和架构选择对应的下载链接)
Windows 系统 (x86_64): https://artifacts.elastic.co/download.co/downloads/elasticsearch/elasticsearch-7.17.17-windows-x86_64.zip
Linux 系统 (x86_64): https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz
Linux 系统 (ARM64): https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-aarch64.tar.gz
# 分词插件下载(全部下载)
https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.17.17.zip
https://release.infinilabs.com/analysis-pinyin/stable/elasticsearch-analysis-pinyin-7.17.17.zip
https://release.infinilabs.com/analysis-stconvert/stable/elasticsearch-analysis-stconvert-7.17.17.zip
# SDK jars下载(全部下载)
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch/7.10.2/elasticsearch-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-cli/7.10.2/elasticsearch-cli-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-core/7.10.2/elasticsearch-core-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-geo/7.10.2/elasticsearch-geo-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/client/elasticsearch-rest-client/7.10.2/elasticsearch-rest-client-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.10.2/elasticsearch-rest-high-level-client-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-secure-sm/7.10.2/elasticsearch-secure-sm-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-ssl-config/7.10.2/elasticsearch-ssl-config-7.10.2.jar
https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch-x-content/7.10.2/elasticsearch-x-content-7.10.2.jar
以上ElasticSearch程序准备好后,参考对应版本的全文检索部署手册做后续的部署配置。
# 四、下载文件检查
无论是自动化还是手动,下载完成后,检查如下文件是否存在:
下载目录: download
- Elasticsearch: download\elasticsearch
- 插件包: download\tokenizer
- SDK包: download\sdk
部署路径: Searchservice\ES\elasticsearch
插件目录: Searchservice\ES\elasticsearch\plugins
配置文件: Searchservice\ES\elasticsearch\config\elasticsearch.yml
SDK存放: Searchservice\search\searchservice\libs
以上ElasticSearch程序准备好后,参考对应版本的全文检索部署手册做后续的部署配置。
快速跳转