solr NGramFilterFactory对数字不起作用

时间:2013-01-28 19:35:26

标签: solr lucene n-gram

我不知道这是一个错误或功能,但Solr NGramFilterFactory对数字不起作用。

这是我的字段类型:

<fieldType name="phone_test" class="solr.TextField" positionIncrementGap="100">
   <analyzer type="index">
      <tokenizer class="solr.LowerCaseTokenizerFactory"/>
       <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="30" side="front" />
   </analyzer>
   <analyzer type="query">
      <tokenizer class="solr.LowerCaseTokenizerFactory"/>
   </analyzer>
</fieldType>

当我在Solr管理界面中使用分析器并输入一个单词,例如“business”时,它工作正常,但是当我写数字时,如12345678,它不起作用。

我想要的是搜索部分电话号码。如果我有123456789作为电话号码并且我搜索456或6789,我应该受到打击。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

LowerCaseFilterFactory的定义如下。

  

通过小写所有字母并删除非字母来创建标记。

它正在丢弃你的号码,因为它们是非字母的。我建议您使用KeywordTokenizerFactoryStandardTokenizerFactory。因为这些应该正确处理您的数字输入。