


插件地址：
https://gitcode.com/sing1ee/elasticsearch-jieba-plugin/tree/8.4.1?init=initRepo
安装参考文档：
https://blog.csdn.net/weixin_42326851/article/details/124615116


简明步骤
git clone git@gitcode.com:sing1ee/elasticsearch-jieba-plugin.git
cd elasticsearch-jieba-plugin
git checkout 8.4.1
# 注意如果Elasticsearch不是8.4.1，需要按照readme修改配置文件，包括ES版本、target JAVA版本
# 查看ES版本
# bin/elasticsearch --version
git submodule update --init --recursive
gradle wrapper
./gradlew pz

TODO 拷贝到插件目录


检查
bin/elasticsearch-plugin list


测试
新建POST请求: http://localhost:9200/_analyze

请求body：

{
  "analyzer": "jieba_index",
  "text": "美国伊拉克"
}






详细步骤
1. 安装gradle：
到这里找到下载地址：https://services.gradle.org/distributions/
注意要用7.6.4 版本（之前用8.6版本出错，改为7.6.4好了）
wget下来二进制包（zip），解压到某个目录（~/.env下），配置好PATH：
~/.bashrc添加：
export GRADLE_HOME="$HOME/.env/gradle-7.6.4"
export PATH=${GRADLE_HOME}/bin::${PATH}

2. 拉插件（elasticsearch-jieba-plugin）拉下来、打包
注意要用ssh、不要用https clone（用https，clone下来没问题，init就出问题，没找到原因。重新输密码、上传公钥、清除knownhosts，都不行）：
git clone git@gitcode.com:sing1ee/elasticsearch-jieba-plugin.git
cd elasticsearch-jieba-plugin
git checkout 8.4.1
git submodule update --init --recursive

/usr/share/elasticsearch/bin/elasticsearch --version
得到版本号：8.12.2
修改两个文件的ES版本：
src/main/resources/plugin-descriptor.properties
build.gradle （里面有两处修改）
 
然后打包：
gradle wrapper
./gradlew pz
打包好的插件在目录： ./build/distributions

gradlew pz又出错，提示找不到tools.jar：Could not find tools.jar. Please check that /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el8_4.x86_64/jre contains a valid JDK installation.
有的人是因为没配置JAVA_HOME，我这里，根据错误提示，路径找对了，但是这个路径下确实没有tools.jar。
因此只能重装jdk。
yum install java-1.8.0-openjdk
重装了，原来的jdk目录不存在了，有了新的：
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-3.el8.x86_64/
但是这个目录同样没有tools.jar 。后面找到资料，openjdk后面加个新，安装所有java1.8相关的东西，这个问题得到了修复：
yum -y install java-1.8.0-openjdk*

又出了另外一个问题：
Execution failed for task ':compileJava'.
> 无效的源发行版: 18
原因是我们指定的源发行版不匹配Java编译器的版本。
1. 确保这里配置对了
sourceCompatibility = JavaVersion.VERSION_18 // 不同版本的es，需要不同版本的java环境，注意修改这里
targetCompatibility = JavaVersion.VERSION_18  // 不同版本的es，需要不同版本的java环境，注意修改这里
2. elasticsearch --version 提示ES的java版本是21，因此将以上配置改为21。 为了简化问题，决定回退ES版本，改回8.4.1，这样插件的配置文件都不用改了，直接用8.4.1分支就行。
3. java版本是1.8，不是18（之前以为1.8就是18，卡在这里大半天）。重新安装jdk18就好了。
javac -version
javac 1.8.0_362
# 注意yum里面只到17，没有18，下载jdk18，以rpm方式安装：https://www.oracle.com/java/technologies/javase/jdk18-archive-downloads.html
# 注意如果之前自己手动配置了JAVA_HOME，要把他删掉。
yum remove java-1.8.0-*  （之前yum remove java*，有可能有问题）
rpm -ivh jdk-18.0.2.1_linux-x64_bin.rpm 
现在三个的版本就都对了：
javac -version
javac 18.0.2.1

[root@192 ~]# elasticsearch --version
warning: ignoring JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk; using bundled JDK
Version: 8.4.1, Build: rpm/2bd229c8e56650b42e40992322a76e7914258f0c/2022-08-26T12:11:43.232597118Z, JVM: 18.0.2

gradle --version  （gradle用的jdk是1.8 不用管，插件的readme上注明gradle版本7.6匹配ES版本8.4.1）
Gradle 7.6.4
JVM:          1.8.0_362 



