我正在编写一个提供搜索功能的分类广告网站。在我的整个经验中,我一直依赖 mySQL 作为数据存储,因此使用 Elastic Search 进行开发对我来说是新鲜事。
我可以看到三个选项:
在我的应用程序中使用 Elastic Search 作为唯一的存储(有 doctrine ES 扩展)并让它存储所有内容——用户、权限、事件日志等等
使用MySQL,分类只存ID,ES单独拉取所有数据
在 MySQL 和 Elastic Search 中复制数据
通常采用什么方法?
最佳答案
我的建议是坚持使用 mysql 作为主要存储,并利用触发器的力量来处理后台作业并保持 mysql 和 elastic 之间的同步数据。我建议不要使用 elastic-mongo 组合,因为没有官方连接器在那里。
将mysql作为主要存储也将确保为您提供数据备份,以防您的集群发生任何灾难。 确保为集群的批量索引维护适当的队列大小。
或者如果您除了在 S3 或文件系统上进行搜索和备份之外别无他法,则将弹性存储作为唯一的主存储。
关于php - 一个同时使用elasticsearch和mysql的app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576717/