没有不值得去解决的问题,也没有不值得去学习的技术!

After Running ./20.04/install_elasticsearch.sh 7, the Matching IK Analyzer Plugin Is Not Installed

After running the command: ./20.04/install_elasticsearch.sh 7 to install Elasticsearch, the corresponding version of the IK analysis plugin was not installed

1. After running the command: ./20.04/install_elasticsearch.sh 7 to install Elasticsearch, the corresponding version of the IK analysis plugin was not installed. See Figure 1.

After running the command: ./20.04/install_elasticsearch.sh 7 to install Elasticsearch, the corresponding version of the IK analysis plugin was not installed
Figure 1
Plaintext
root@iZ2ze4fjghbbj74d4kfnf0Z:/var/www/laravel-shop# cd ~/laravel-ubuntu-init
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init# ./20.04/install_elasticsearch.sh 7
===> Installing JAVA...    [DONE]
===> Installing Elasticsearch 7...    [DONE]
===> Installing Elasticsearch plugin...    [DONE]
Installation complete
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init# sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init#


2. I decided to edit install_elasticsearch.sh, as the issue likely lies in the code that checks whether the plugin is installed being ineffective.

ShellScript

function install_es_plugins {
    ESVersion=$(/usr/share/elasticsearch/bin/elasticsearch -V|awk -F',' '{print $1}'| awk '{print $2}')

#    [[ -e /usr/share/elasticsearch/plugins/analysis-ik ]] || {
        /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v${ESVersion}/elasticsearch-analysis-ik-${ESVersion}.zip
#    }
    mkdir -p /etc/elasticsearch/analysis/
    touch /etc/elasticsearch/analysis/synonyms.txt

    service elasticsearch restart
}

3. After running the command: /usr/share/elasticsearch/bin/elasticsearch-plugin list, the corresponding plugin is still missing.

Plaintext

root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init# /usr/share/elasticsearch/bin/elasticsearch-plugin list
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init#


4. I finally decided to install the plugin manually. Reference: https://github.com/medcl/elasticsearch-analysis-ik . Reference: The corresponding relationship between IK version and ES version. See Figure 2.

Finally decided to install the plugin manually. Reference: https://github.com/medcl/elasticsearch-analysis-ik . Reference: The corresponding relationship between IK version and ES version
Figure 2

5. Installing using elasticsearch-plugin. Since the ES version is 7.17.6, the latest version of IK can be installed. Error: plugin [analysis-ik] was built for Elasticsearch version 8.2.3 but version 7.17.6 is running. See Figure 3.

Installing using elasticsearch-plugin. Since the ES version is 7.17.6, the latest version of IK can be installed. Error: plugin [analysis-ik] was built for Elasticsearch version 8.2.3 but version 7.17.6 is running
Figure 3
Plaintext

root@iZ2ze4fjghbbj74d4kfnf0Z:~# curl 127.0.0.1:9200
{
  "name" : "iZ2ze4fjghbbj74d4kfnf0Z",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "ML75WugQScOM5vF1Jeye1w",
  "version" : {
    "number" : "7.17.6",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "f65e9d338dc1d07b642e14a27f338990148ee5b6",
    "build_date" : "2022-08-23T11:08:48.893373482Z",
    "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"
}
root@iZ2ze4fjghbbj74d4kfnf0Z:~# cd ~/laravel-ubuntu-init
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init#
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init#
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init#
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init# /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.3/elasticsearch-analysis-ik-8.2.3.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.3/elasticsearch-analysis-ik-8.2.3.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.3/elasticsearch-analysis-ik-8.2.3.zip
[=================================================] 100%  
-> Failed installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.3/elasticsearch-analysis-ik-8.2.3.zip
-> Rolling back https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.3/elasticsearch-analysis-ik-8.2.3.zip
-> Rolled back https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.3/elasticsearch-analysis-ik-8.2.3.zip
Exception in thread "main" java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 8.2.3 but version 7.17.6 is running
        at org.elasticsearch.plugins.PluginsService.verifyCompatibility(PluginsService.java:391)
        at org.elasticsearch.plugins.cli.InstallPluginAction.loadPluginInfo(InstallPluginAction.java:831)
        at org.elasticsearch.plugins.cli.InstallPluginAction.installPlugin(InstallPluginAction.java:887)
        at org.elasticsearch.plugins.cli.InstallPluginAction.execute(InstallPluginAction.java:245)
        at org.elasticsearch.plugins.cli.InstallPluginCommand.execute(InstallPluginCommand.java:88)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:95)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.plugins.cli.PluginCli.main(PluginCli.java:36)
root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init#


6. I decided to install version 7.17.5 of the plugin. Error: plugin [analysis-ik] was built for Elasticsearch version 7.17.5 but version 7.17.6 is running. There is currently no version 7.17.6 of the plugin available.

Plaintext

root@iZ2ze4fjghbbj74d4kfnf0Z:~/laravel-ubuntu-init# /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
[=================================================] 100%  
-> Failed installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
-> Rolling back https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
-> Rolled back https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
Exception in thread "main" java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 7.17.5 but version 7.17.6 is running
        at org.elasticsearch.plugins.PluginsService.verifyCompatibility(PluginsService.java:391)
        at org.elasticsearch.plugins.cli.InstallPluginAction.loadPluginInfo(InstallPluginAction.java:831)
        at org.elasticsearch.plugins.cli.InstallPluginAction.installPlugin(InstallPluginAction.java:887)
        at org.elasticsearch.plugins.cli.InstallPluginAction.execute(InstallPluginAction.java:245)
        at org.elasticsearch.plugins.cli.InstallPluginCommand.execute(InstallPluginCommand.java:88)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:95)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.plugins.cli.PluginCli.main(PluginCli.java:36)


7. The only option is to roll back the Elasticsearch version to 7.17.5. I finally decided to start over. Edit /20.04/install_elasticsearch.sh. Specify the version as 7.17.5. See Figure 4.

The only option is to roll back the Elasticsearch version to 7.17.5. Finally decided to start over. Edit /20.04/install_elasticsearch.sh. Specify the version as 7.17.5
Figure 4
ShellScript

function install_es {
    curl -sS https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/elasticstack/${VERSION}.x/apt stable main" > /etc/apt/sources.list.d/elastic-${VERSION}.x.list
    apt-get update
    apt-get install -y elasticsearch=7.17.5
    service elasticsearch start
}

8. The Elasticsearch version is now 7.17.5, and the plugin has been installed. See Figure 5.

The Elasticsearch version is now 7.17.5, and the plugin has been installed
Figure 5
Plaintext

root@iZ2zeh119jtszpxb8sf8pvZ:~/laravel-ubuntu-init# curl 127.0.0.1:9200
{
  "name" : "iZ2zeh119jtszpxb8sf8pvZ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "65TOsoDbTn6sWU-JSfczZg",
  "version" : {
    "number" : "7.17.5",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "8d61b4f7ddf931f219e3745f295ed2bbc50c8e84",
    "build_date" : "2022-06-23T21:57:28.736740635Z",
    "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"
}
root@iZ2zeh119jtszpxb8sf8pvZ:~/laravel-ubuntu-init# sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list
root@iZ2zeh119jtszpxb8sf8pvZ:~/laravel-ubuntu-init# /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
[=================================================] 100%  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed analysis-ik
-> Please restart Elasticsearch to activate any plugins installed
root@iZ2zeh119jtszpxb8sf8pvZ:~/laravel-ubuntu-init# service elasticsearch restart
root@iZ2zeh119jtszpxb8sf8pvZ:~/laravel-ubuntu-init# /usr/share/elasticsearch/bin/elasticsearch-plugin list                                                    analysis-ik
root@iZ2zeh119jtszpxb8sf8pvZ:~/laravel-ubuntu-init#


关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系