3.2_jieba插件安装.md 4.14 KB

插件地址: 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