2

我在 RDS 上使用 InnoDB,遗憾的是它还不支持 MySQL 全文搜索。因此,我正在寻找替代方案。我的应用程序在 Heroku 上,我考虑了各种提供搜索功能的插件,但有一个非常大的公司表(约 1 亿条记录),我认为它们非常昂贵。我只需要能够搜索表格上的一个字段——公司名称。

因此,我正在考虑创建自己的“关键字”表。本质上,这将列出每个公司名称中包含的每个单词。然后会有另一个表显示这些关键字和 company_id 之间的关联。

  1. 这听起来是个好主意吗?有没有更好的选择?

  2. 创建关键字表和关联表的最有效方法是什么?如果可能的话,我想用 T-SQL 来做。

4

1 回答 1

2

你可以做到,而且比使用LIKE '%word%'查询要好得多。

但它不如使用正确的全文索引好。

请参阅我的演示文稿Full Text Search Throwdown,其中我比较了 MySQL 的全文解决方案,包括三元组,这与您正在考虑的关键字解决方案大致相似。

迄今为止,最快的解决方案是 Sphinx Search。

于 2012-12-24T00:37:06.017 回答