0

現在、英語のみで動作するsolrのビルドがあり、アラビア語のサポートを追加する必要があります。SolrWikiには、開始方法に関する詳細があまりありません。

これらは、IVEが行った次の手順です

schema.xmlに以下を追加しました

<fieldType name="text_general_arabic" class="solr.TextField"     positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ArabicNormalizationFilterFactory"/>
<filter class="solr.ArabicStemFilterFactory"/>    
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ArabicNormalizationFilterFactory"/>
<filter class="solr.ArabicStemFilterFactory"/>    
</analyzer>
</fieldType>

Schema.xmlでフィールドを定義しました

<field name="البرتغالية" type="text_general_arabic" indexed="true" stored="true"/>

参考までに、ブラウザでgoogletranslateからアラビア語のテキストをコピーして貼り付けました

後で、メモ帳をユニコードファイルとして使用してcsvファイルを作成し、Arabic.csvとして保存しました。このファイルのフィールド名は、

ポルトガル語

次のcURLコマンドを使用してファイルにインデックスを付けようとすると

D:\>curl http://localhost:8080/solr/coll9/update/csv -F "stream.file=D:\Arabic.csv" -F   "commit=true" -F "optimize=true"
-F "encapsulate="" -F "keepEmpty=true"

未定義のフィールドエラーが発生しますどこが間違っているのかわかりません

更新:csvファイルの代わりにXMLファイルで同じことを試してみると、それは機能しています

4

1 に答える 1

0

最初に、可能であればすべてのフィールド名を英語に変更することをお勧めします。混乱を避けることができます。異なる言語での同じデータのフィールド命名に関するこの回答のアドバイスに従うことも検討してください。

CSVLoaderBase::load() 関数 は、内部で Java BufferedLoader() クラスを使用し、エンコーディングを指定しません。この質問に記載されているように、デフォルトのエンコーディングはおそらくアラビア語と互換性がないと推測しています。

Solr 4.0 では、schema.xml に言語ごとに事前定義されたフィールド タイプが付属しています。言語固有の詳細情報はこちらです。これらのフィルターはすべて 3.6 でも利用できると思います。Solr4 の schema.xml の例はこちらです。

于 2012-12-21T07:41:21.143 に答える