Solr EdgeNGramFilterFactory和minGramSize

时间:2015-03-04 22:02:22

标签: solr

有没有办法使用EdgeNGramFilterFactory并继续搜索确切的术语?

我想保持minGramSize = 4,但是如果我搜索" pad",我想得到"鼠标垫"的结果,因为这是短语中的确切术语。

<fieldType name="ngran_text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.EdgeNGramFilterFactory" 
            minGramSize="4" maxGramSize="15" side="front"/>
    <filter class="solr.BrazilianStemFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

1 个答案:

答案 0 :(得分:0)

您希望拥有的preseverOriginal标记EdgeNGramFilter尚未实现。 a feature request for Solr (SOLR-5332)解决了这个问题。该功能计划用于5.1版。 5.0版刚刚发布(2015年2月20日)。因此,在升级后可能需要一段时间才能使用它。

如果无法等待和升级,您可以使用

解决此问题
  • 具有更常规分析器的第二个字段
  • 您的架构中
  • the copyField command填充字段
  • dismax或更好的edismax查询处理程序,用于处理同一搜索查询的两个字段