mysql - 在 MySQL 中生成关键字表(作为全文搜索的替代方案)

标签 mysql heroku full-text-search amazon-rds

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

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

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

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

最佳答案

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

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

查看我的演示Full Text Search Throwdown ,我在其中比较了 MySQL 的全文解决方案,包括三元组,这大约类似于您正在考虑的关键字解决方案。

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

关于mysql - 在 MySQL 中生成关键字表(作为全文搜索的替代方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015866/

相关文章:

MySQL 连接 : Multiple fields same name

mysql - SQL - 更新表中的多行

java - 我无法连接 Heroku 上的数据库

ruby - Heroku 上的 Sinatra + Datamapper 应用程序

sql - SQL 全文搜索中使用通配符 (*) 和单词分组的智能搜索

postgresql - 在 PostgreSQL 中使用相关表进行全文搜索

mysql - 帮助进行 sql 查询 - 连接两个表

mysql - 每周和日内数据汇总

node.js - 在 Heroku 中找不到模块 'phantomjs'

Postgresql全文搜索,将自然数 "01"视为 "1"