使用InnoDB进行全文搜索

我正在开发一个高容量的Web应用程序,其中的一部分是讨论帖子的MySQL数据库,该数据库需要平稳地增长到2000万+行。


我本来打算对表使用MyISAM(用于内置的全文本搜索功能),但是由于单个写入操作而使整个表被锁定的想法使我陷入困境。行级锁具有更大的意义(更不用说InnoDB在处理大型表时的其他速度优势)。因此,基于这个原因,我决心使用InnoDB。


问题是... InnoDB没有内置的全文本搜索功能。


我应该使用第三方搜索系统吗?像Lucene(c ++) / Sphinx吗?你们中的任何数据库忍者有任何建议/指导吗?LinkedIn的zoie(基于Lucene)看起来是目前的最佳选择...是围绕实时功能构建的(这对于我的应用程序来说非常关键。)我有点犹豫,但没有任何见识...


(仅供参考:将在具有高内存绑定的EC2上使用PHP服务前端)


慕工程0101907
浏览 733回答 3
3回答

料青山看我应如是

我可以保证MyISAM全文是一个不好的选择-甚至不考虑MyISAM表的各种问题,我已经看到了全文问题,并开始破坏自身并定期使MySQL崩溃。专用搜索引擎肯定是这里最灵活的选择-将帖子数据存储在MySQL / innodb中,然后将文本导出到搜索引擎。您可以很容易地设置定期的全索引构建/发布,如果需要并想花时间,可以添加实时索引更新。Lucene和Sphinx和Xapian都是不错的选择,它既美观又轻巧。如果您走Lucene路线,即使您不想与Java搏斗,也不要以为Clucene会更好,尽管我没有资格讨论两者的优缺点。
打开App,查看更多内容
随时随地看视频慕课网APP