Solr搜索单词邻近

时间:2015-05-21 05:17:43

标签: ruby-on-rails solr sunspot-rails

我正在使用sunspot gem来获取rails app中的搜索功能。 我在solr搜索中有单词邻近问题。 示例我正在搜索" Hello World",solr为我提供了搜索的正确结果。 但在第一份文件" Hello World" string只出现一次,在第二个文档中出现两次。

但我想要的是,如果字符串在任何文档中显示更多,则会出现在顶部,而字符串在最高结果之后显示为较少。

帮助将不胜感激。 Thanku

1 个答案:

答案 0 :(得分:2)

如果您的搜索字段(我称之为关键字) omitNorms =" true" 表示搜索字词与关键字匹配的次数不再重要。因此,在 schema.xml 中将omitNorms设置为false。

如果您使用的是edismax,则每个字段的默认提升为1,但您可以使用插入符号(^)增加更多特定字段。因此,如果您希望在关键字字段中使用搜索字词进行多次匹配,则要在搜索结果中显示更高的匹配率,您必须使用高因子进行提升并按分数desc排序(默认值)。

adjust_solr_params do |params|
  params[:fq] = "keywords_text:(your terms)^15"
end