EdgeNGramFilterFactory过滤器类和单词中的多个diactric字符的问题

时间:2016-01-18 12:25:48

标签: solr

我已将BLÅBÆRSOMMEREN索引到Solr中,我添加了EdgeNGramFilterFactory过滤器类,如下所示:

<fieldType name="nGramtext" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">     
        <charFilter class="solr.HTMLStripCharFilterFactory"/>
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" />
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" />
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>

现在,如果我用完整的词搜索:BLÅBÆRSOMMEREN它会给我结果,但如果我用BLÅB或BLÅBÆRSOMM进行搜索,它就不会给我结果。注意我已在此字段上执行edismax查询

根据文档here我猜,它应该适用于所有这些词,但事实并非如此。

  

我已将Solr用于电子商务网站。最初我有   在名称字段中配置该单词,它将无法正常工作。然后我有   仅在简短描述字段中配置了该单词(已从中删除   名称)。

在此之后我执行了查询并且它有效。注意:两个字段都具有相同的字段类型。

 <field name="Name" type="text" indexed="true" stored="true"  required="false" />  
 <field name="ShortDescription" type="text" indexed="true" stored="true" required="false" />

此外,还有像:

这样的副本
<copyfield source="Name" dest="nGramContent"/>
 <copyField source="ShortDescription" dest="nGramContent"/>

我在这里做错了什么?请帮忙!我怎样才能做到这一点?

0 个答案:

没有答案