使用Solr 3.5.0的Im和Schema我已经在所有必需的字段中启用了LowerCaseFilterFactory,但是当我搜索例如“衬衫”时我能够得到结果,当我搜索“SHIRTS”我能够获得预期的结果,但是当我尝试用“shiRTs”进行搜索时,它没有给出结果。我知道我在Schema中缺少一些东西。Solr中的小写和大写关键字
请帮我解决这个问题。
谢谢
Jeyaprakash。
使用Solr 3.5.0的Im和Schema我已经在所有必需的字段中启用了LowerCaseFilterFactory,但是当我搜索例如“衬衫”时我能够得到结果,当我搜索“SHIRTS”我能够获得预期的结果,但是当我尝试用“shiRTs”进行搜索时,它没有给出结果。我知道我在Schema中缺少一些东西。Solr中的小写和大写关键字
请帮我解决这个问题。
谢谢
Jeyaprakash。
在索引和查询时间应用相同的分析器和过滤器,因此您搜索的查询与令牌索引匹配。
至于你的情况 - 如果你申请的小写过滤器在索引时间,但不会在查询时间: -
指数令牌将shirts
,但是作为搜索查询不分析SHIRTS
甚至Shirts
将不匹配索引shirts
令牌。
如果您使用词干分析器,停用词或其他过滤器,则同样适用。
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers
分析仪是组件前处理输入文本在索引时间 和/或在搜索时间。使用相同或相似的 分析仪很重要,该分析仪在索引和查询 时间以兼容的方式处理文本。例如,如果索引分析器将词汇降低,则查询分析器应该执行相同的操作来启用索引词语的查找。
非常感谢Jayendra。 :) – jeyaprakash 2012-02-24 10:19:35
有人可以告诉我如何做到这一点? 例如:过滤器'solr.LowerCaseFilterFactory'应用于text_en_splitting的模式。如何将此应用于查询? – 2013-05-29 09:55:44
您的意思是架构中的“<分析器类型=”索引“>”和“<分析器类型=”查询“>”?我有这个但仍然没有效果...查询仍然没有按照问题中提到的那样做 – 2013-05-29 10:02:26
您应该在索引和查询的同时添加LowerCaseFilterFactory。也许您错过了一个。如果您共享您的fieldType,将会提供合适的答案。 – 2012-02-24 07:28:44