ElasticSearch rails:按对象的关联数据排序结果

时间:2014-09-10 04:17:19

标签: ruby-on-rails elasticsearch searchkick

我已经在rails应用程序中实现了Searchkick,它运行正常。我想根据关联对象的数量来订购我的结果。 对于Eg。如果我按他们的名字搜索用户,那么我想按照关注者的数量订购结果。 (拥有大多数粉丝的用户应该先来)

@users = User.search "2% #{query}", include: [:followers], fields: [:name]

感谢您的提前帮助

1 个答案:

答案 0 :(得分:0)

我认为您需要添加计数器缓存(http://guides.rubyonrails.org/association_basics.html 4.1.2.3)并使用followers_count模型上的User列进行排序。

User.search "2% #{query}", include: [:followers],
            fields: [:name], order: followers_count