2013-10-12 3 views
0

Можно ли отправить сообщение с фильтром запроса с помощью резинки шины elasticsearch в контроллере? У меня есть модель продукта, у которой есть метод self.search, который возвращает массив результатов, , но я хочу, чтобы в некоторых случаях фильтрация результата в контроллере.Рельсы, выдающие результаты фильтрации жемчужины в контроллере

ex: когда current_user.location является «Лондоном», я хочу показывать продукты в Лондоне. можно ли это сделать?

if current_user.location == 'london' 
@products = Product.search(params).results.filter('location:london') 
end 

ответ

0

Попытка фильтровать массив объектов после того, как факт будет очень неэффективным и медленным. Также было бы очень сложно правильно выполнять разбиение на страницы. Вам будет гораздо лучше сначала искать и фильтровать (чтобы ElasticSearch выполнял работу), а затем вызывал результаты.

Product.search(params).filter(:terms, :location => ['london']).results 

https://github.com/karmi/retire#usage

Смежные вопросы