如何解决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 举报,一经查实,本站将立刻删除。