2017-01-21 19 views
0

私のアプリケーションでは、Elasticsearchのトランスポートクライアントを使用してES 1.7.2クラスタに接続しています。 documentationあたりとして、それはとても以下、Luceneの4.10.4を使用しています私のアプリケーションで依存関係のバージョンです:今Maven依存関係の競合:ElasticsearchとLucene

Elasticsearch : 1.7.2 
Lucene : 4.10.4 

、私はメモリパーコレーションで実行するのLuceneベースのライブラリ(here)を使用します。これのpom.xmlを見ると、Lucene 6.3.0ライブラリを使用しているようです。だから、ElasticsearchはLuceneの4.10.4を必要とMavenは6.3.0でそれを上書きして、この依存関係を追加した後、私のアプリケーションが起動しない、私は、次のオプションを試してみました:パーコレーションライブラリの以前のバージョンを検索

  • Luceneと互換性があります。4.10.4 - 成功しません。
  • Luceneを使ってelasticsearchを作ろうとしました。6.3.0 - 成功しませんでした。私はelasticsearchの依存関係のバージョンを更新しようとすることができますが、私のアプリケーションは新しいバージョンで1.7.2クラスタに接続することができません(また、私はクラスタをアップグレードすることはできません)。

他のオプションはありますか?

答えて

1

他のライブラリのluceneへの依存関係を除外して、バージョン4.xで動作することを期待できます。あなたのMavenのポンポンで

、技術的には、それがバージョンの競合を解決する方法

<dependency> 
    <groupId>com.github.flaxsearch</groupId> 
    <artifactId>luwak</artifactId> 
    <version>1.4.0</version> 
    <exclusions> 
    <exclusion> 
     <groupId>[the lucene lib group]</groupId> 
     <artifactId>[the lucene lib artifact]</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

をだん。しかし、アプリケーションを構築できるという保証はありません。

+0

答えに感謝します。私は 'lucene-core'依存関係を除外しようとしましたが、おそらく' NoSuchMethodError'を '4.10.4'には存在しないメソッドがあると予想して投げます。それを機能させるために他にできることは何ですか? –

+0

何も、私は考えることができます。一緒に使いたい2つのlibは、異なるバージョンのluceneに強い依存関係があるため、互換性がないようです。たぶんElasticSearchと連絡を取って、アップデートがスケジュールどおりになっているかどうか尋ねます。 –

+0

@DarshanMehta私はあなたがEleneSearch to Lucene 6.3.0よりLucene 4.10.4にluwkをバックポートする良い機会があると思います。あなたが運が良ければ、わずかな非互換性があります。 – lexicore

関連する問題