2013-08-16 2 views
1

Есть ли способ интегрировать синтаксис ActiveRecord и методы с объектом results, данным Sunspot?Rails Solr Интеграция Sunspot с ActiveRecord

Например, Post.where(...).search{fulltext 'pizza'}.results не фильтровать результаты по моей статье where(...) и Post.search{fulltext 'pizza'}.results.where(...) возвращает NoMethodError: undefined method 'where' for #<Sunspot::Search::PaginatedCollection:0x007fe9b388bd88>

Без индексации все, есть способ, чтобы координировать мой поиск SunSpot с запросом ActiveRecord? Некоторые из моих фильтров AR слишком сложны, чтобы просто переписать в предпочтительном синтаксисе Sunspot.

ответ

0

Насколько я знаю, вы должны индексировать поля для вашего условного оператора.

Post.search do 
with(:blog_id, 1) 
fulltext("pizza") 
end 

Беспорядочное решение состоит в том, чтобы добавить условное утверждение при прохождении результатов.

search.each_hit_with_result do |hit, result| 
    if result.post_id == 2 
    #stuff 
    end 
end 

Вы также можете создать условный индекс. http://mikepackdev.com/blog_posts/19-conditional-indexing-with-sunspot