elasticsearch 安装 IK 中文分词器插件提示找不到文件的异常(Exception in thread “main“ java.nio.file.NoSuchFileException)
目录
- elasticsearch 安装 IK 中文分词器,命令行窗口执行安装分词器错误
- 错误记录
- 错误截图
- 错误日志
- 解决方案
- 1、自己到github下载对应版本的ik中文分词器
- 2、解压到 ..\plugins\ik 文件夹里面
- 3、重启elasticsearch失败
- 4、删除压缩包,重启成功
elasticsearch 安装 IK 中文分词器,命令行窗口执行安装分词器错误
错误记录
错误截图
在命令行窗口,执行如下命令安装 IK 中文分词器 失败。
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/^ releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip
错误日志
C:\Users\JH> elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/^ More? releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip -> Installing https://github.com/medcl/elasticsearch-analysis-ik/ -> Downloading https://github.com/medcl/elasticsearch-analysis-ik/ -> Failed installing https://github.com/medcl/elasticsearch-analysis-ik/ -> Rolling back https://github.com/medcl/elasticsearch-analysis-ik/ -> Rolled back https://github.com/medcl/elasticsearch-analysis-ik/ Exception in thread "main" java.nio.file.NoSuchFileException: E:\install\Elasticsearch\elasticsearch-7.14.1\plugins\.installing-3880239359474571643\plugin-descriptor.properties at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108) at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:235) at java.base/java.nio.file.Files.newByteChannel(Files.java:371) at java.base/java.nio.file.Files.newByteChannel(Files.java:422) at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420) at java.base/java.nio.file.Files.newInputStream(Files.java:156) at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:173) at org.elasticsearch.plugins.InstallPluginCommand.loadPluginInfo(InstallPluginCommand.java:787) at org.elasticsearch.plugins.InstallPluginCommand.installPlugin(InstallPluginCommand.java:846) at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:246) at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:216) at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116) at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:80) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116) at org.elasticsearch.cli.Command.main(Command.java:79) at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:36)
解决方案
1、自己到github下载对应版本的ik中文分词器
上面命令中两个插件版本号应该和 Elasticsearch 的版本保持一致,我现在用的是 7.14.1 版本。
首先版本和命令是对得上的。
命令行窗口通过命令下载失败的话,我就自己到 github 上面下载。
进入这个页面,点击选择版本后进行下载
https://github.com/medcl/elasticsearch-analysis-ik
如图,我自己的 elasticsearch 是7.14.1 版本
通过 postman 发送 : https://localhost:9200 命令 也可以查看自己的elasticsearch的版本
然后下载
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.14.1
2、解压到 …\plugins\ik 文件夹里面
下载完成后,我在 E:\install\Elasticsearch\elasticsearch-7.14.1\plugins\ik 这个 plugins 目录下,创建了一个 ik 文件夹,把分词器压缩包解压到里面。
因为此前安装的elasticsearch,在plugins文件夹里面,什么东西都没有。
3、重启elasticsearch失败
然后重启 elasticsearch 服务器,报错了
C:\Users\JH>elasticsearch Exception in thread "main" java.nio.file.NotDirectoryException: E:\install\Elasticsearch\elasticsearch-7.14.1\plugins\elasticsearch-7.14.1-windows-x86_64.zip at java.base/sun.nio.fs.WindowsDirectoryStream.(WindowsDirectoryStream.java:84) at java.base/sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:523) at java.base/java.nio.file.Files.newDirectoryStream(Files.java:472) at java.base/java.nio.file.Files.list(Files.java:3699) at org.elasticsearch.tools.launchers.BootstrapJvmOptions.getPluginInfo(BootstrapJvmOptions.java:49) at org.elasticsearch.tools.launchers.BootstrapJvmOptions.bootstrapJvmOptions(BootstrapJvmOptions.java:34) at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137) at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86)
4、删除压缩包,重启成功
重启错误提示没有elasticsearch-7.14.1-windows-x86_64.zip这个目录结构,所以我解压完之后就把压缩包给删除了。
再重启就成功了。
至此,IK 中文分词器插件弄好了,接下来就是测试了。
测试包括:通过指定分词器来创建index索引库,并测试分词器是否生效
这篇是我测试IK中文分词器写的文章:
测试 IK 中文分词器(用指定分词器创建 index 索引库,并通过命令和postman工具测试分词器)