微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Solr大小写不敏感

如何解决Solr大小写不敏感

| 哈o 我正在Solr中实现自动完成功能,并且遇到一个问题。 对于自动完成,我正在使用
<fieldType name=\"text_auto\" class=\"solr.TextField\" sortMissingLast=\"true\" omitnorms=\"true\">
    <analyzer>
        <tokenizer class=\"solr.KeywordTokenizerFactory\"/>  
        <filter class=\"solr.LowerCaseFilterFactory\" />
    </analyzer>
</fieldType> 
我认为LowerCaseFilter应该使令牌大小写不敏感,但这是错误的。实际上,令牌只使用小写形式,这意味着类似\“ comput \”的查询将导致\“ computer \”,而\“ Comput \”则不会。 实际上,我想将Comput和Comput引入计算机。 我已经尝试过了:
<fieldType name=\"text_auto_low\" class=\"solr.TextField\" sortMissingLast=\"true\" omitnorms=\"true\">
    <analyzer>
        <tokenizer class=\"solr.KeywordTokenizerFactory\"/>  
        <filter class=\"solr.LowerCaseFilterFactory\" />
    </analyzer>
</fieldType> 

<fieldType name=\"text_auto_up\" class=\"solr.TextField\" sortMissingLast=\"true\" omitnorms=\"true\">
    <analyzer>
        <tokenizer class=\"solr.KeywordTokenizerFactory\"/>  
    </analyzer>
</fieldType>
      由于某种原因,它也不说话。我的问题是为什么,我该如何解决?     

解决方法

Lucene具有Analyzer类,您可以通过三种方式使用(实现): SimpleAnalyzer:这会将所有输入转换为小写。 StopAnalyzer:这将删除可消除搜索噪音的单词。 StandardAnalyzer:这同时完成了上述过滤过程,因此可以“清理”您的查询。 现在,提出您的问题,我将推荐一个称为ngram的技术,该技术可以拆分您的查询,然后搜索这些短语。因此,即使有错别字,您仍然可以获得出色的结果。 要知道该怎么做,我建议您阅读此书以开始使用。它还具有有关查询的其他重要信息。 这不仅可以解决您的问题,而且可以增强您的应用程序。 玩得开心:D     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。