【发布时间】:2013-02-14 22:55:24
【问题描述】:
我需要使用 Mongoid 对 Rails 应用程序中的帖子进行排名,并且我正在寻找有关如何高效、准确地执行此操作的意见。
目前,我编造的方式效率极低。
现在我正在根据这样的方法对模型进行排序:
def hotness
return (self.confidence*(self.popularity+0.3))/Math.sqrt((Time.now - Time.at(self.created_at)))
end
然后我根据热度对数组进行排序并将其打印到页面上。这是错误的做法,而且性能现在还没有发生。
我不确定有什么更好的方法。
还有其他不需要时间调用的函数,我可以想象不同的方法来做这些,但仍然需要输入。优化对我来说很重要。
提前非常感谢。如果需要,我可以澄清任何事情。
【问题讨论】:
-
您到底在寻找什么?完全不同类型的排名算法?只是在不改变实际行为的情况下提高性能?
-
那么您想在 Mongoid 查询中进行排序吗?
-
我想知道是否有比这更有效的返回结果的方法。最好的办法是将这个结果放入一个字段然后定期更新吗?这似乎是一个可能的解决方案,然后我只需要查询一个可排序的数字,但我正在寻找任何可以帮助我做出正确选择的输入。
标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid