Солнечное пятно: увеличение скалярных полей

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

Статьи имеют и принадлежат многим авторам

Это не работает, но это то, что я собираюсь сделать:

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

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


person Brooks    schedule 02.06.2014    source источник


Ответы (1)


Не имеет смысла иметь буст внутри блока 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

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

person Mike    schedule 12.06.2014