2012-02-23 7 views
0

データインポートハンドラを使用してデータベースからデータを読み込んだ後にインデックスを作成しようとしていますが、データをソルバーにインデックスする前にデータを処理する必要があります...カスタムトランスを作成しようとしていますが、私はhttp://wiki.apache.org/solr/DIHCustomTransformerで与えられたjavaコードを書いています...しかし、彼らはそれを使用する方法について指示を与えていません.... PS>私はかなりJavaの新しいですsolI DataImportHandler用のカスタムトランスフォーマを作成するには?

私はできません変圧器をロードするためにも、私のデータ-config.xmlにここhttp://wiki.apache.org/solr/SolrPlugins#How_to_Load_Plugins ...

を言及したすべての3つの方法を実行した後、私は、エンティティを追加しました:

<entity name="cod" query=".. " transformer="foo.check"> 
</entity> 

Javaコード:

package foo; 
import java.util.*; 
public class check { 
... 
... 
} 

それから私は、コマンド "ジャーCVFのfoo.jarをするcheck.class" を使用してjarファイルを作り、内部のlibディレクトリを作成した後、例/ Solrの/ libの内側foo.jarを配置していますsolr .....他の2つの方法も試しました...
つまり、solrconfig.xmlの中にlibパスを指定し、solr.warの中にfoo.jarを追加します。

答えて

2

クラスを含める方法Solrが使用するために、確認してくださいhttp://wiki.apache.org/solr/SolrPlugins#How_to_Load_Plugins

クラスをjarとしてパッケージ化し、solrコアのlibフォルダに追加することで、作成したカスタムプラグインクラスを読み込むことができます。構成内のクラスの参考

からURLで定義されるよう

使用です。

あなたは次のようにあなたのデータ-config.xmlに完全なパッケージ名を持つトランスを指定する必要があります。

<entity name="artist" query="..." transformer="foo.TrimTransformer"> 
     <field column="artistName" /> 
</entity> 
+0

ありがとうJayendraが、私はそこに記載されているすべての3つの方法を実行した後でもトランスを読み込めません...私のdata-config.xmlにエンティティを追加しました Javaコード: パッケージfoo; import java.util。*; public class check { –

2

これはあなたのjarファイルを作成する方法に関連している可能性があります。 jarファイルを解凍し、 "foo"というフォルダを見つけ、このフォルダの中にcheck.class(foo/check.class)があるはずです。私はあなたがcheck.classファイルを入れて、それを "foo.check"を使って参照しているという気持ちがあります。これを確認するもう一つの方法は、変圧器を単に "検査する"ように変えることです。そうすれば、 '変圧器= "検査"します。 jarファイルのフォルダ階層と完全修飾されたクラス名は完全に一致する必要があります。

関連する問題