Lucene打破了Snowball的干扰依赖

时间:2018-03-06 14:19:23

标签: maven lucene dependency-management snowballanalyzer snowball-stemmer

在我的Java项目中(使用Maven)我以Gate 8.0为基础进行自然语言处理,并加载 Stemmer_Snowball 插件(参见plugin list )。作为the documentation states,Stemmers正在处理Snowball词干分析器(http://snowball.tartarus.org)上的资源包装器。

Gate加上词干分析器运行良好,直到我将Hibernate Search ORM 5.9(因此Lucene)依赖项添加到项目中:

mvn test-compile dependency:tree
...
...
[INFO] +- org.hibernate:hibernate-search-orm:jar:5.9.0.Final:compile
[INFO] |  \- org.hibernate:hibernate-search-engine:jar:5.9.0.Final:compile
[INFO] |     +- org.apache.lucene:lucene-core:jar:5.5.5:compile
[INFO] |     +- org.apache.lucene:lucene-misc:jar:5.5.5:compile
[INFO] |     +- org.apache.lucene:lucene-analyzers-common:jar:5.5.5:compile
[INFO] |     +- org.apache.lucene:lucene-facet:jar:5.5.5:compile
[INFO] |     |  \- org.apache.lucene:lucene-queries:jar:5.5.5:compile

事实证明,lucene-analyzers-common软件包会覆盖org.tartarus.snowball软件包的旧版本(请参阅the package summary for more info),现在自定义的Lucene Snowball软件包和原始的Snowball软件包不兼容:

  1. 原始雪球版: https://github.com/snowballstem/snowball/tree/master/java/org/tartarus/snowball
  2. Lucene Snowball版本: https://github.com/apache/lucene-solr/tree/master/lucene/analysis/common/src/java/org/tartarus/snowball
  3. 注意即使Lucene重写了Snowball包类,也会保留原始包名,这会使库不兼容。

    我想在我的项目中同时使用Gate(使用原始Snowball词干分析器)和Hibernate Search(使用自定义Lucene Snowball词干分析器)。 Maven优雅地阻止我们加载同一个包的多个版本,那么在这种情况下该怎么办?

    更新:我添加了an issue on Lucene's issue tracker

0 个答案:

没有答案