1

GraphDB 内で独自のアナライザー実装を指定する方法を理解するのに問題があります。ドキュメントと他のいくつかの投稿を読んだ後、.jar の依存関係に関する問題が発生しているようです。

ボイラープレートCustomAnalyzerCustomAnalyzerFactoryクラスを作成するために、 にあるlucene.jarandを使用する必要がlucene-core.jarありましたlib/plugins/lucene。私のgradleビルドファイルは次のようになります:

group 'com.example'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile fileTree(dir: 'libs/lucene', include: '*.jar')

}

注:libs/lucene私がコピーしたgradleプロジェクトのフォルダーで、graphdbスタンドアロンサーバーディストリビューションlucene.jarlucene-core.jar配置されていますlib/plugins/lucene

コードをコンパイルし、 を使用して jar ファイルを作成しgradle clean jarたら、それを にコピーしlib/plugins/lucene-connectorます。

Graph-db を再起動し、コネクタに移動し、UI を使用して lucene-connector を追加しようとしました。アナライザーを指定できるところまでたどり着きました。ただし、com.example.CustomAnalyzer を指定すると、次のエラー メッセージが表示されます。

 Caused by: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/ASCIIFoldingFilter

いろいろ調べてみたところ、lucene-core.jar ファイルが 2 つあることがわかりました。1 つはlibs/plugins/luceneで、もう1 つはlibs/plugins/lucene-connectorです。lucene-core.jarin にはクラスlibs/plugins/lucene-connectorがありません。ASCIIFoldingFilter

単一のjarに含まれるすべての依存関係を含むfatJarを作成しようとしましたが、その場合、graphdbはコネクタのロードに失敗します。

どこが間違っているのかよくわかりませんが、jarファイルを構築および参照する方法に関係があると感じています。


また、CustomAnalyzer から ASCIIFilter を削除しようとしましたが、まったく新しい一連のエラーが発生します。

Caused by: com.ontotext.trree.sdk.BadRequestException: Unable to instantiate analyzer class, only analyzers with a default constructor or a constructor accepting single Version parameter are possible: com.example.CustomAnalyzer
    at com.ontotext.trree.plugin.externalsync.impl.lucene4.CreateAnalyzerUtil.instantiateAnalyzer(CreateAnalyzerUtil.java:70)
    at com.ontotext.trree.plugin.externalsync.impl.lucene4.CreateAnalyzerUtil.createAnalyzerFromClassName(CreateAnalyzerUtil.java:42)
    at com.ontotext.trree.plugin.externalsync.impl.lucene4.Lucene4ExternalStore.open(Lucene4ExternalStore.java:182)
    at com.ontotext.trree.plugin.externalsync.impl.lucene4.Lucene4ExternalStore.initImpl(Lucene4ExternalStore.java:718)
    ... 60 common frames omitted
4

1 に答える 1