2013-10-12 3 views
0

컨트롤러에 elasticsearch tire gem이 포함 된 쿼리를 게시 할 수 있습니까? 나는 배열 결과를 돌려 보내는 self.search 메서드를 가지고 있지만 컨트롤러의 결과를 필터링하는 경우가 있기를 원하는 제품 모델이 있습니다.레일 타이어 보석 필터링 결과 컨트롤러

예 : 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