我正在使用Solr 3.5.0,在Schema中我已经在所有需要的字段中启用了LowerCaseFilterFactory,但是当我搜索“衬衫”时我能够得到结果,当我搜索“衬衫”时我也是能够得到预期的结果,但是当我尝试用“shiRTs”搜索它没有给出结果。我知道我在Schema中遗漏了一些东西。
请帮我解决这个问题。
由于
Jeyaprakash。
答案 0 :(得分:4)
在索引和查询时应用相同的分析器和过滤器,因此您搜索的查询与令牌索引匹配。
与你的情况一样 -
如果您在索引时应用小写过滤器但在查询时不应用: -
索引令牌将为shirts
,但由于未分析搜索查询,SHIRTS
甚至Shirts
将无法匹配已编入索引的shirts
令牌。
如果您使用词干分析器,停用词或其他过滤器,则同样适用。
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers
分析器是在索引时预处理输入文本的组件 和/或在搜索时。使用相同或类似的东西很重要 在索引和查询中以兼容方式处理文本的分析器 时间。例如,如果索引分析器小写单词,那么 查询分析器应该这样做,以便能够找到索引的单词。