4

我正在 codeigniter php 框架中构建一个电子商务系统,它需要一个完整的产品搜索。我在 MySQL 数据库中使用了 InnoDB 引擎,因为它的优点是支持外键来强制引用完整性或行锁定而不是表锁定,但它不支持全文索引:'(

唯一的问题是我需要搜索产品表以进行站点搜索,因此我需要一种替代全文索引的方法,该方法也与 Codeigniter 兼容。有没有人有任何建议?我已经研究过创建一个单独的可搜索表和狮身人面像,但它们看起来令人困惑:S

编辑

与主机核对后,我无法使用 Sphinx,因为该站点位于共享主机上,并且我的主机提供商不允许安装,因为它需要 root 级别权限,并且他们不会进行系统范围的安装,因为它是第 3 方他们不能保证它的安全性。

4

2 回答 2

3

我建议你简单地更新你的 MySQL。 InnoDB 全文搜索 (FTS) 终于在 MySQL 5.6.4 版本中可用。

这些索引在物理上表示为整个 InnoDB 表,由 SQL 关键字(例如 CREATE INDEX 语句的 FULLTEXT 子句、SELECT 语句中的 MATCH() ... AGAINST 语法和 OPTIMIZE TABLE 语句)执行。来自全文索引

于 2013-05-13T07:16:00.427 回答
1

最简单的方法是为产品的文本数据创建一个 MyISAM 表并针对它运行搜索查询。然后你可以每天用一个 cron 作业重建 MyISAM 表中的数据,以确保一致性。或者您可以让您的模型在每次更新时更新 MyISAM 表中的数据。

于 2012-08-13T16:27:17.363 回答