0

我想根据任何文本字段提升结果中的文档。

例如。考虑以下模式

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

为了提升布尔字段,我们可以简单地添加一个像这样的提升子句:

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

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

4

1 回答 1

0

尝试这个

   Post.search do
      fulltext '*:*' do
         boost(2) { with(:tags).equal_to('important') }
      end
    end
于 2018-12-12T14:27:04.467 回答