Sunspot Solr Boost в текстовом поле - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу повысить документы в результате на основе любого текстового поля.

например.рассмотрите следующую схему

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

Я знаю, что приведенный выше код неверен, но объясняет требуемое поведение.

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте это

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