使用Codeigner在InnoDB/MySQL数据库中模拟全文搜索的最佳方式


Best way to emulate fulltext search in a InnoDB/MySQL database using Codeigniter

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

唯一的问题是我需要搜索产品表来进行网站搜索,所以我需要一种替代全文索引的方法,它也与Codeigner兼容。有人有什么建议吗?我已经考虑过创建一个单独的可搜索表和狮身人面像,但它们看起来很困惑:S

编辑

在与主机核实后,我无法使用Sphinx,因为该网站位于共享主机上,我的主机提供商不允许安装,因为它需要根级权限,他们不会进行系统范围的安装,因为这是第三方,他们无法保证它的安全性。

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

这些索引在物理上表示为整个InnoDB表,由SQL关键字(如CREATE INDEX语句的FULLTEXT子句、MATCH()。。。SELECT语句中的反对语法,以及OPTIMIZE TABLE语句。从FULLTEXT索引

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