Solr模糊搜索仅进行区分大小写的搜索

时间:2013-01-11 08:40:54

标签: solr fuzzy-search

我的数据库包含fist_name为'Sumit',当我搜索它时,给出了以下first_name的结果:Sumit~0.7 / first_name:Sumits~0.7

但是如果我尝试使用case insensitve搜索,它就不会返回任何内容 -first_name:SUMIT~0.7 / first_name:SUMit~0.7

我的schema.xml内容是:

    <fieldType name="custum_fuzzy_text" class="solr.TextField" omitNorms="false">
     <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
     <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

有人可以帮忙吗?难道我做错了什么?或者我还做其他事吗

2 个答案:

答案 0 :(得分:2)

Analyzers

On wildcard and fuzzy searches, no text analysis is performed on the search word.

由于在查询时没有对模糊搜索进行分析,因此在查询时间内将应用小写过滤器 您需要在客户端处理它。

答案 1 :(得分:1)

您使用的是哪个版本的Solr?这非常重要。另外,您实际上是使用''(如Summit )或普通文本进行模糊查询。这两种情况也不同。

如果您正在进行'*'查询并且您的Solr在3.6之前,那么您正在点击the MultiTerm issue(模糊的技术名称)。

如果您不使用*,我不确定问题是什么。使用Solr 4,Admin界面具有Analyzer部分,您可以在其中根据字段定义放置文本并查看结果。试试吧。

最后,请注意,如果你的索引和查询分析器设置相同,你不需要写两次,只需要一个组合的分析器部分(没有type = ...)