1

在我的 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 搜索中,我想使用阿拉伯字母搜索产品名称。在搜索时,阿拉伯语用户会觉得搜索某些产品名称的默认值很小。因为有些字符需要在搜索时提及。

例如:إ أ آ

在上述字符中,用户可以获得shift键的组合。通常如果阿拉伯人会提到“ا”字符,会得到以下组合词。

例如:إبرا

在我的 solr schema.xml 中,我定义了产品阿拉伯名称字段,如下所示

4

1 回答 1

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>

有关此过滤器的更多信息 -此处。工作代码示例 -这里

于 2017-01-30T10:59:42.380 回答