簡體   English   中英

使用Codeigniter在InnoDB / MySQL數據庫中模擬全文搜索的最佳方法

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

我正在codeigniter php框架中構建一個電子商務系統,需要完整的產品搜索。 我在MySQL數據庫中使用了InnoDB引擎,因為它的優點是支持外鍵來強制引用完整性或行鎖定而不是表鎖定,但它不支持全文索引:'(

唯一的問題是我需要在產品表中搜索站點搜索,因此我需要一種替代方法,而不是全文索引,它也與Codeigniter兼容。 有沒有人有任何建議? 我已經研究過創建一個單獨的可搜索表和Sphinx,但它們看起來很混亂:S

編輯

在與主機核對后,我無法使用Sphinx,因為該站點位於共享主機上,我的托管服務提供商將不允許安裝,因為它需要根級別權限,並且他們不會進行系統范圍的安裝,因為它是第三方他們不能保證它的安全。

我建議你簡單地更新你的MySQL。 InnoDB全文搜索(FTS)終於在MySQL 5.6.4版本中可用。

這些索引在物理上表示為整個InnoDB表,它們由SQL關鍵字操作,例如CREATE INDEX語句的FULLTEXT子句,SELECT語句中的MATCH()... AGAINST語法以及OPTIMIZE TABLE語句。 來自FULLTEXT索引

最簡單的方法是為產品的文本數據創建一個MyISAM表,並針對它運行搜索查詢。 然后,您可以使用cron作業每天在MyISAM表中重建數據,以確保一致性。 或者,您可以使模型在每次更新時更新MyISAM表中的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM