Solr搜索问题

时间:2012-01-11 10:40:06

标签: solr

我们正在将大量推文和博客Feed存储到solr中。

现在,如果用户搜索像@rohit这样的Twitter提及,则还会返回仅包含单词rohit的记录。即使我们完全匹配“@rohit”,我也明白这是因为使用了WordDelimiterFilterFactory,它会拆分特殊的字符,

 http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilterFactory

如果没有“@”,我怎么强迫Solr不回来。我不想删除WordDelimiterFilterFactory,因为splitOnCaseChange和stemEnglishPossessive是有用的吗?希望我很清楚。

此致

罗希特夏尔

2 个答案:

答案 0 :(得分:2)

如果设置preserveOriginal =“1”,则应修复此问题。如果不是你的标记化器可能剥离@,那么你必须选择另一个像solr.WhitespaceTokenizerFactory。

答案 1 :(得分:1)

我要做的是创建一个新的fieldType,其中包含preserveOriginal =“1”。然后,您可以在旧的fieldType中创建一个copyfield。这样你最终会得到两个不同版本的字段,可以同时搜索,只是因为有时你会想要搜索没有'@'。你可以做什么,如果有人用一些特殊字符搜索,比如'@'让他们搜索保存的原始字段,否则就像正常一样搜索默认字段。