首页 > elasticsearch和数据库

elasticsearch和数据库

这个search引擎是只负责搜索还是也有存储呢?
如果只帮助我搜索,如何应用到现有的网站?
是不是要把数据库的数据全拿出建立索引推上去?
要是挂了是不是要重新load一次?
这样怎么和数据库里数据一一对应呢?
初学者,先谢谢耐心回答


1.也负责存储
2.如果mysql和redis一类的nosql能满足需求就尽量别上这种东西来增加业务复杂度
3.是需要把数据库的数据完整地导入到es的
4.es是分布式系统,单节点挂了问题不大,集群会负责帮你做索引重新分布,当然你别全挂。。
5.这涉及到如何把mysql数据同步到es中,目前有几种解决方案:
1) elasticsearch-jdbc,可以去github搜一下,原来是利用数据库的update_time时间戳来同步数据的创建和更新,坑比较多,慎入
2) binlog同步数据,需要把mysql的binlog解析,然后推到消息队列,然后只要做消息队列的消费者,优点是和业务代码没有任何耦合,缺点是要引入消息队列,自己写消费者程序,其实是增加了开发的复杂度,大公司里一般会采用这种方案
3) 上面方案的简化版,在业务的数据操作时做双写,一份进mysql,一份进es/或者通过消息队列,来进行数据同步
6.然后就是怎么查的问题了。。这个为了对业务系统透明,你可能得专门去开发一套orm

所以你可以看到,引入es是一定要解决问题再引入,毕竟这个东西涉及到开发成本。剩下的就是了解es到底解决什么问题了。

【热门文章】
【热门文章】