【问题标题】:Solr Fuzzy search does only case sensitive searchesSolr 模糊搜索只执行区分大小写的搜索
【发布时间】:2012-12-25 19:32:20
【问题描述】:

我的数据库包含 first_name 作为“Sumit”,当我搜索它时,它会为我提供以下 first_name:Sumit~0.7 / first_name:Sumits~0.7 的结果

但如果我尝试进行不区分大小写的搜索,它不会返回任何内容 -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>

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

【问题讨论】:

    标签: solr fuzzy-search


    【解决方案1】:

    您使用的是哪个版本的 Solr?这是相当重要的。此外,您实际上是在使用“”(如 Summit)还是只是普通文本进行模糊查询。这两种情况也不同。

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

    如果您没有使用 *,我不确定问题是什么。在 Solr 4 中,Admin 界面有 Analyzer 部分,您可以在其中将文本与字段定义放在一起,然后查看结果。试试看。

    最后,作为一个说明,如果你的索引和查询分析器集是相同的,你不需要写两次,只需一个组合分析器部分(没有 type=...)

    【讨论】:

    • 谢谢,Alexandre 帮了大忙。
    【解决方案2】:

    Analyzers

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

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

    【讨论】:

    • 以上是否回答了您的问题,您可以接受。
    猜你喜欢
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多