Solr Indexing of Arabic content(with diacritics)

时间:2015-01-28 14:58:09

标签: indexing solr arabic

每个文件由3个字段组成,两个字段是整数,第三个是带变音符号的阿拉伯语文本,用户可以使用带/不带变音符号的单词,甚至某些字母可能有变音符号而其他字母没有变音符号,我找不到一个在这种情况下有帮助的schema.xml。

我的schema.xml现在如下:

<?xml version="1.0" encoding="UTF-8" ?>

<schema name="quran" version="1.5">

<fields>
    <field name="_version_" type="long" indexed="true" stored="true"/>
    <field name="_id" type="long" indexed="true" stored="true" />
    <field name="sura_number" type="int" indexed="true" stored="true" />
    <field name="verse_number" type="int" indexed="true" stored="true" />
    <field name="verse_text" type="text_ar" indexed="true" stored="true"/>
 </fields>



<types>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>

    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
    <dynamicField name="*_coordinate"  type="tdouble" indexed="true"  stored="false"/>

   <!--  Arabic  -->
   <fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100">
   <analyzer>
   <tokenizer class="solr.StandardTokenizerFactory"/>
   <!--  normalizes ﻯ to ﻱ, etc  -->
   <filter class="solr.ArabicNormalizationFilterFactory"/>
   <filter class="solr.ArabicStemFilterFactory"/>
   </analyzer>
   </fieldType>


</types>

</schema>

我还需要arab.txt for arabic。

2 个答案:

答案 0 :(得分:2)

您认为如何在schema.xml中使用配置[幻灯片18]?

Arabic Content with Apache Solr

答案 1 :(得分:0)

您想使用ICUTransformFilterFactory。这有点难以理解,但是如果您按照过滤器本身的链接然后到ICU用户指南,您会发现a lot of information

有些内容很难理解,因此您可能会发现the example I built for Thai language有用作为起点。