太阳黑子solr:增强标量场

时间:2014-06-02 22:06:03

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

我正在使用多个标量字段,我希望将范围内的结果推到搜索结果的顶部,而不排除不符合收藏作者标准的结果。

文章拥有并属于许多作者

这不起作用,但我正在寻找:

favorite_author_ids = @current_user.favorite_author_ids

@search = JournalArticle.solr_search do
  fulltext params[:article_title]
  any_of do
    boost(2.0) {with(:author_ids), favorite_author_ids}
    with(:author_ids), []
  end
end

我想我可以进行两次搜索并连接结果,但我想知道是否有更清洁的方法。

1 个答案:

答案 0 :(得分:2)

any_of块内部进行增强是没有意义的。你可能想做这样的事情:

favorite_author_ids = @current_user.favorite_author_ids

@search = JournalArticle.solr_search do
  fulltext params[:article_title] do
    boost(2.0) {with(:author_ids, favorite_author_ids)}
  end
end

如果您只想增加喜爱作者的位置,或者您希望他们始终位于顶部,您可能还需要增加提升。