我正在codeigniter php框架中构建一个需要完整产品搜索的电子商务系统。我在MySQL数据库中使用了InnoDB引擎,因为它支持外键来强制引用完整性或行锁定而不是表锁定,但它不支持全文索引:'(
唯一的问题是我需要在产品表中搜索网站搜索,所以我需要一种替代方法,而不是全文索引,它也与Codeigniter兼容。有没有人有任何建议?我已经研究过创建一个单独的可搜索表和Sphinx,但它们看起来很混乱:S
修改
在与主机核对后,我无法使用Sphinx,因为该站点位于共享主机上,我的托管服务提供商将不允许安装,因为它需要根级权限,并且他们不会进行系统范围的安装,因为它是第三方,他们不能保证它的安全。
答案 0 :(得分:3)
我建议您更新MySQL简单。 InnoDB full-text search (FTS) is finally available in MySQL 5.6.4 release.
这些索引在物理上表示为整个InnoDB表,它们由SQL关键字操作,例如CREATE INDEX语句的FULLTEXT子句,SELECT语句中的MATCH()... AGAINST语法,以及OPTIMIZE TABLE语句。 来自FULLTEXT Indexes
答案 1 :(得分:1)
最简单的方法是为产品的文本数据创建一个MyISAM表,并针对它运行搜索查询。然后,您可以使用cron作业每天在MyISAM表中重建数据,以确保一致性。或者,您可以让模型在每次更新时更新MyISAM表中的数据。