1

我拥有约 100 万条记录的 MySQL 表。我很快需要在我的 Rails 3.x 应用程序中添加搜索。我希望搜索模糊。

实际上,我为另一个表使用了一个插件(rails-fuzzy-search),但它只有 3000 条记录。这个插件在另一个表中创建三元组(3000 个记录表的 25000 个三元组)。

好吧,我不能对我的 100 万条记录表使用这种方法,否则我的 trigrams 表可能有 1 亿条记录!

我看到了一些宝石:

我不知道获得更好性能的最佳解决方案是什么。

将为我的表的两个字段设置搜索。

4

1 回答 1

2

一些搜索发现模糊的宝石:

轶事基准:在我的开发机器(2011 MacBook Pro)上,针对我们整个 Geonames 派生的位置表(320 万条记录,约 1GB 数据)

搜索前 10 条匹配记录需要 6 毫秒 ±1 为所有记录准备索引大约需要 10 分钟 更改记录时的数据库查询开销为 3 毫秒 ±2 内存开销(trigrams 表索引的占用空间)约为 300MB

另外,请查看Solr 和 Sunspot

于 2013-05-01T09:02:35.513 回答