elastic-carrot2 插件可以实现在elasticsearch的查询结果的基础上进行聚类。但是插件包打包容易出现各种问题,这里提供打包需要软件版本和打包命令。
Github源码
中文介绍
Carrot2 - Open Source Search Results Clustering Engine是一个开源搜索结果聚类引擎。它可以自动地根据内容将搜索结果组织成更小的主题分类。
更多的详细的介绍参考:
Github源码
中文介绍
git clone http://github.com/carrot2/elasticsearch-carrot2.git
elastic-carrot2 对 elasticsearch 版本要求比较严格,可参考以下内容选择
| Clustering Plugin | Elasticsearch | Carrot2 | Lingo3G |
------------------------------------------------------------------
| (master, unreleased) | 3.16.1 | 1.16.1 |
| 7.0.0 -> 7.5.0 | 3.16.1 | 1.16.1 |
| 6.8.5 | 3.16.1 | 1.16.1 |
| 6.7.1 | 3.16.1 | 1.16.1 |
| 6.6.2 | 3.16.1 | 1.16.1 |
| 6.5.4 | 3.16.0 | 1.16.0 |
| 6.4.3 | 3.16.0 | 1.16.0 |
| 6.3.2 | 3.16.0 | 1.16.0 |
| 6.2.4 | 3.16.0 | 1.16.0 |
| 6.2.3 | 3.15.1 | 1.15.1 |
| 6.1.1 | 3.15.1 | 1.15.1 |
| 5.5.2 | 3.15.1 | 1.15.1 |
| 5.4.0 | 3.15.1 | 1.15.1 |
| 5.3.0 | 3.15.1 | 1.15.1 |
| 5.2.0 | 3.15.1 | 1.15.1 |
| 5.1.1 | 3.15.0 | 1.15.0 |
| 2.4.2 -> 2.4.3 | 3.15.0 | 1.15.0 |
| 2.4.1.1 | 3.15.0 | 1.15.0 |
| 2.4.1 -> 2.4.1 | 3.14.0 | 1.14.0 |
| 2.4.0 -> 2.4.0.1 | 3.12.0 | 1.13.0 |
| 2.3.0 -> 2.3.4 | 3.12.0 | 1.13.0 |
| 2.2.1 | 3.12.0 | 1.13.0 |
| 2.2.0 | 3.11.0 | 1.12.3 |
| 2.1.0 -> 2.1.2 | 3.11.0 | 1.12.3 |
| 2.0.0 -> 2.0.2 | 3.11.0 | 1.12.3 |
| 1.9.1 | 1.6.0 -> 1.7.2+? | 3.10.4 | 1.12.3 |
| 1.9.0 | 1.6.0 -> 1.7.0+? | 3.10.1 | 1.12.0 |
| 1.8.0 | 1.4.0 -> 1.6.0+ | 3.9.3 | 1.10.0 |
| 1.7.0 | 1.3.0 -> 1.3.5+ | 3.9.3 | 1.10.0 |
| 1.6.0 | 1.2.0 -> 1.2.2+ | 3.9.2 | 1.9.1 |
| 1.5.0 | 1.1.0 -> 1.1.2+ | 3.9.2 | 1.9.1 |
| 1.4.0 | 1.0.0 -> 1.0.3 | 3.9.0 | 1.9.0 |
| 1.3.1 | 1.0.0 -> 1.0.3 | 3.8.1 | 1.8.1 |
| 1.3.0 | 1.0.0 -> 1.0.3 | 3.8.1 | 1.8.1 |
| 1.2.2 | 0.90.10-> 0.90.13 | 3.8.0 | 1.8.0 |
| 1.2.1 | 0.90.10-> 0.90.11 | 3.8.0 | 1.8.0 |
| 1.2.0 | 0.90.4 -> 0.90.9 | 3.8.0 | 1.8.0 |
| 1.1.1 | 0.90.4 -> 0.90.9 | 3.8.0 | 1.8.0 |
| 1.1.0 | 0.90.2 -> 0.90.3 | 3.8.0 | 1.8.0 |
| 1.0.1 | 0.90 -> 0.90.3 | 3.7.1 | 1.7.1 |
| 1.0.0 | 0.90 -> 0.90.3 | 3.7.1 | 1.7.1 |
------------------------------------------------------------------
github 上提供了很多 tag 标签,打包的时候根据 elasticsearch 版本号选择对应 tag。如果没有该版本对应的tag,可以选择与之对应的大版本。如需要7.5.2的插件,可选择tag为7.5.0的代码,然后修改 build.gradle 版本号。
打包要求:
- JDK: 12.0.2
- gradle: gradle-6.3
这里jdk版本尝试过8,9,10,11,12,14。只有jdk12成功了,所以打包的时候建议使用jdk12。
jdk下载这里就不多介绍了,自己去官网下载就好
git clone http://github.com/carrot2/elasticsearch-carrot2.git
#基于tag7.5.0 切一个分支
git checkout -b 7.5.0 release/7.5.0
# 确认jdk版本
java -version
java version "12.0.2" 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
# 开始打包(这里跳过javadoc)
cd elasticsearch-carrot2/
./gradlew clean
./gradlew build -xjavadoc
# 打包的结果
# 打包结果在 build/distributions/ 目录下
ls build/distributions/
elasticsearch-carrot2-7.5.0.jar elasticsearch-carrot2-7.5.0.pom elasticsearch-carrot2-7.5.0.zip elasticsearch-carrot2-7.5.0-javadoc.jar elasticsearch-carrot2-7.5.0-sources.jar
# elasticsearch 安装插件
# 将 elasticsearch-carrot2-7.5.0.zip 拷贝到一个目录下(我这里是D:\es-plugins)
# 进入 elasticsearch 根目录下(我这里是windows命令,linux一样)
./bin/elasticsearch-plugin.bat install file:///d:/es-plugins/elasticsearch-carrot2-7.5.0.zip
# 查看已安装插件
curl localhost:9200/_cat/plugins
MS-KGWVEZPQDSXZ elasticsearch-carrot2 7.5.0
由于github上没有 7.5.2 的 tag,所以基于 7.5.0 的代码,修改 build.gradle 中 version 和 version_es 为 7.5.2 。其他的打包过程和上面就一样了
打包要求
* jdk 版本 13
打包过程和7.5.0一样,不过要求jdk版本是13
不想自己打包的兄弟可以直接去下面的链接下载
The compiler java.home must be set to a JDK installation directory for Java 13 but is [D:\Program Files\Java\jdk-12.0.2] corresponding to [12]