0

是否可以在控制器中使用弹性搜索轮胎宝石过滤查询?我有一个产品模型,它有一个 self.search 方法,它返回一个结果数组,但我想在某些情况下过滤控制器中的结果。

例如:当current_user.location是“伦敦”时,我只想在伦敦展示产品。可以这样做吗?

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

1 回答 1

0

事后尝试过滤对象数组将非常低效且缓慢。这也会使正确进行分页变得非常困难。您最好先搜索和过滤(以便 ElasticSearch 完成工作),然后调用结果。

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

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

于 2013-10-13T04:01:11.073 回答