2012-12-21 95 views
0

我們目前只有英文的工作,我們需要阿拉伯語支持添加到它的SOLR構建沒有太多詳細的Solr維基有關如何使用Solr的索引和搜索阿拉伯文內容

啓動這些都是下面的步驟香港專業教育學院做了

添加以下到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"/> 

FYI IVE複製從谷歌的阿拉伯文字在瀏覽器中轉換並粘貼它

後來我一直在使用記事本作爲Unicode文件創建一個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" 
嘗試索引文件

即時得到一個未定義場的錯誤,我不知道我在哪裏做錯了

更新:當我嘗試用一​​個XML文件,而不是它是如此的第一個工作日

+0

由於XML文件正在運行,您可以使用該方法而不是csv文件嗎? –

+0

不,我必須使用csv什麼是錯誤的我的上述方法我甚至已啓用我的Tomcat服務器上的UTF-8 – Mitra

回答

0

csv文件同樣的事情,我會建議如果可能的話,將所有的域名改爲英文。它避免了一些混淆。您也可以考慮按照this answer中有關不同語言的相同數據的字段命名的建議。

CSVLoaderBase::load() function使用封面下方的Java BufferedLoader()類,並且不指定編碼。我猜測默認編碼可能與阿拉伯語不兼容,如this question所述。

在Solr 4.0中,schema.xml附帶了每種語言的預定義字段類型。更多特定於語言的信息是here。我認爲所有這些過濾器也可以在3.6中獲得。 Solr4 schema.xml示例是here

+0

嘿即時通訊使用Solr 3.6,請你詳細說明你正在嘗試解釋什麼,一個XML文件而不是csv – Mitra

+0

我可以按照您的建議使用預定義的字段類型對阿拉伯文本進行索引,但是,用於規範化的過濾器不起作用。我有一個單獨的[問題在這裏](http://stackoverflow.com/questions/27485205/arabic-normaliztion-in-solr)任何想法,有什麼可以失蹤? – MoustafaAAtta