2012-12-21 151 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