我正在使用Solr 4.1,我想突出显示阿拉伯语查询。但它无法正常工作。它找到要正确突出显示的单词,但是当它想要添加突出显示标记(例如 )时,它无法找到要将这些标记添加到的写入索引。例如,它为查询披萨创建了这样的东西。
<str>i eat<em> pizz</em>a every weekend</str>
它适用于英语,但我只是想解释一下我的意思。
或者这是查询علی的阿拉伯语示例:
<str>أَخْبَرَنِي الرَّئِیسُ الْعَفِیفُ أَبُو الْبَقَاءِ هِبَةُ اللَّهِ بْنُ نَمَا بْن<em>ِ عَلِي</em>ِّ بْ</str>
我希望如此:
<str>أَخْبَرَنِي الرَّئِیسُ الْعَفِیفُ أَبُو الْبَقَاءِ هِبَةُ اللَّهِ بْنُ نَمَا بْنِ <em>عَلِيِّ</em> بْ</str>
请注意,我使用以下字段说明:
<fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="searchEng.solr.ar.CharFilter" />
<tokenizer class="solr.StandardTokenizerFactory"/>
<!-- for any non-arabic -->
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt" enablePositionIncrements="true"/>
<!-- normalizes ﻯ to ﻱ, etc -->
<filter class="solr.ArabicNormalizationFilterFactory"/>
<filter class="solr.ArabicStemFilterFactory"/>
</analyzer>
</fieldType>
第一个charFilter只是标准化了一些阿拉伯字符。