文本字段上的Sunspot Solr Boost

时间:2018-11-19 13:13:52

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

我想基于任何文本字段增强结果中的文档。

例如考虑采用以下模式

class Post < ActiveRecord::Base
  searchable do
    text :title, :body
    text :comments do
      comments.map { |comment| comment.body }
    end
    text :tags
    boolean :featured
  end
end

要增强布尔字段,我们可以简单地添加一个boost子句,如下所示:

Post.search do
  fulltext '*:*' do
    boost(2.0){with(:featured, true)}
  end
end

我想在文本字段上实现提升,假设我想获得所有帖子,但是标记为“重要”的帖子必须放在第一位,就像这样:

Post.search do
  fulltext '*:*' do
    boost(2.0){fulltext 'important', fields: :tags}
  end
end

我知道上面的代码是不正确的,但是可以解释所需的行为。

1 个答案:

答案 0 :(得分:0)

尝试一下

   Post.search do
      fulltext '*:*' do
         boost(2) { with(:tags).equal_to('important') }
      end
    end