在我的solr schema.xml中,我定义了产品阿拉伯名称字段,如下所示
<field name="productNameArabic" type="text_ar" indexed="true" stored="true"/>
<fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt" />
<filter class="solr.ArabicNormalizationFilterFactory"/>
<filter class="solr.ArabicStemFilterFactory"/>
</analyzer>
</fieldType>
在solr搜索中,我想使用阿拉伯字母搜索产品名称。在搜索时,阿拉伯语用户可以感觉很少默认搜索某些产品名称。因为搜索时需要提一些字符。
Ex:إأ
在上述字符中,用户可以获得shift键的组合。通常,如果阿拉伯语的人会提到“ا”字符并且会得到以下组合词。
Ex:إبرا
在我的solr schema.xml中,我定义了产品阿拉伯名称字段,如下所示
答案 0 :(得分:0)
我能够通过添加ASCIIFoldingFilter
来实现所需的功能,此过滤器可以删除不同语言的重音,使其在索引时间内相似。
<fieldType name="arabic" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt" />
<filter class="solr.ArabicNormalizationFilterFactory"/>
<filter class="solr.ArabicStemFilterFactory"/>
</analyzer>
</fieldType>