Blame view

docs/ES/ES_8.18/3.2_jieba插件安装.md 4.14 KB
648cb4c2   tangwang   ES docs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
  

  

  

  插件地址:

  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