【问题标题】:How to ignore accent search in Solr如何忽略 Solr 中的重音搜索
【发布时间】:2014-04-19 12:43:50
【问题描述】:

我使用 solr 作为搜索引擎。我有一个文本字段包含像"María" 这样的重音文本的情况。当用户使用"María" 搜索时,它会给出结果。但是当用户使用"Maria" 搜索时,它没有给出任何结果。

我的架构定义如下所示:

<fieldtype name="my_text" class="solr.TextField">
       <analyzer type="Index">
           <tokenizer class="solr.WhitespaceTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>
           <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="32" side="front"/>
       </analyzer>
       <analyzer type="query">
           <tokenizer class="solr.WhitespaceTokenizerFactory"/>
           <filter class="solr.LowerCaseFilterFactory"/>

       </analyzer>
</fieldtype>

请帮忙解决这个问题。

【问题讨论】:

    标签: solr


    【解决方案1】:

    如果您使用的是 solr > 3.x,您可以尝试使用 solr.ASCIIFoldingFilterFactory,它将所有重音字符从基本的 ascii 127 字符集更改为无重音版本。

    记得把它放在你配置的任何词干过滤器之后(你没有使用它,所以你应该没问题)。

    所以你的配置可能看起来像:

    <fieldtype name="my_text" class="solr.TextField">
           <analyzer type="Index">
               <tokenizer class="solr.WhitespaceTokenizerFactory"/>
               <filter class="solr.LowerCaseFilterFactory"/>
               <filter class="solr.ASCIIFoldingFilterFactory"/>
               <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="32" side="front"/>
           </analyzer>
           <analyzer type="query">
               <tokenizer class="solr.WhitespaceTokenizerFactory"/>
               <filter class="solr.LowerCaseFilterFactory"/>
               <filter class="solr.ASCIIFoldingFilterFactory"/>
    
           </analyzer>
    </fieldtype>
    

    【讨论】:

    • 谢谢。有效。但是我们有一个拥有数千个内核的多核环境。现在如何更新所有核心 schema.xml 文件?有没有办法做到这一点?
    • @pavankumar 现在这是一个不同的问题。一些部署自动化工具可能最好地回答。 Ansible、厨师或木偶等等。
    • 是的,你是对的。它与部署相关。我会在某个地方知道如何做到这一点。谢谢!
    【解决方案2】:

    在这里回答,因为它是搜索“忽略重音 solr”时弹出的第一个结果。

    haystack 生成的schema.xml 中(并使用aldryn_searchdjangocmsdjangocms-blog),如果您在text_en fieldType 中添加&lt;filter class="solr.ASCIIFoldingFilterFactory"/&gt; 行,@soulcheck 提供的答案有效.

    Screenshot 1, screenshot 2.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多