【发布时间】:2011-04-06 08:10:54
【问题描述】:
这个和我的previous question on the performance of Arrays and Hashes in Ruby有关。
先决条件
我知道,由于 O(1) 查找,使用哈希存储大量对象会显着提高性能。
现在假设我有两个类,即A 和B,它们可以相互关联,但前提是存在第三类C(它是一种关系类)。举一个实际的例子,假设我有Document,Query和关系类Judgement(这是来自信息检索,所以基本上判断告诉你文档是否与查询相关)。
(我希望我做对了)
问题
在大多数情况下,您想知道Document 和Query 的组合有多少个Judgements,或者如果有的话。
为了找出后者,我将遍历每个Jugdement ...
@judgements.each { |j| return true if j.document == document and j.query == query }
现在,这让我们再次回到线性搜索,这并没有多大帮助。
如何解决?
我正在考虑一种方法来拥有双哈希 - 如果有这样的事情 - 这样我就可以使用 Document 和 Query 查找 Judgements 我已经有了。
或者有没有其他方法可以快速找出给定的 Document 和 Query 对是否存在判断?
【问题讨论】:
标签: ruby performance hash