Ruby - 检查相交是否存在

标签 ruby ruby-on-rails-3 search optimization

我正在尝试使用 Postgres DB 加速 RoR 应用程序中的搜索功能。我不会解释它目前是如何工作的......只需采用/achieve 方法即可!

我有 x 条记录(可能数量很大),每条记录都有一个关联的 Facebook ID 号数组...可能最多 5k。我需要使用个人的 friend ID 列表对此进行搜索,以确定搜索数组与任何(以及哪些)记录数组之间是否存在相交。

我不需要知道交集的结果,只需要知道它是真还是假。

有什么好主意吗?!

谢谢!

最佳答案

仅使用纯 ruby​​,因为您没有提及您的数据存储:

friend_ids = user.friend_ids
results = records.select { |record| !(record.friend_ids & friend_ids).empty? }

结果 将包含至少有 1 个共同的friend_id 的所有记录。如果您必须检查大量记录,这不会很快。

& 是数组交集运算符,它是用 C 语言实现的,你可以在这里看到它: http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-26

关于Ruby - 检查相交是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444090/

相关文章:

CSS 与 Heroku 上的本地显示不一样

macos - 如何在 OSX 12.3.1 上启用 Spotlight 来索引我的 NAS?

ruby-on-rails - 尽管安装了 therubyracer 和 nodejs,但找不到 JavaScript 运行时

javascript - CLI 调用页面后以编程方式访问 HTTP 流量(通过 wget 或 urllib2 等)

ruby-on-rails - 如何修复 Heroku 上的日期方法关闭问题?

ruby-on-rails - Rails hash to array to hash 如何?

ruby-on-rails - 合并两个 ruby 对象

RubyInline - 比较字符串

search - SEO网站别名优化

sql - 如何为可搜索性构建数据