业务模块数据与搜索引擎索引数据同步的问题

上两周,我在搭建装修图库的索引库的时候,发现了一个潜在的问题,之前是没有考虑到的。
那就是“业务模块数据与搜索引擎索引数据同步的问题”:
》搜索引擎索引库的数据时增量的,即更新业务模块每天变更的数据。从索引时间和系统资源占用率分析,每天全部重新索引一遍是不可能的。
》业务模块的数据变动,搜索引擎需要有办法知道。
目前我们的实现方式是依靠业务模块数据表的“更新时间”字段。但这样做有很大的局限性,搜索引擎对业务模块的依赖性太强,耦合太紧。
我分析了一下,有以下几种解决方案:
1、依赖业务模块数据库表的“更新时间”字段。(我们目前使用的方式)
缺点
》要求数据库表必须有“更新时间”字段,业务模块必须保证程序没有bug,有任何变动时,都得确保对“更新时间”字段有修改。
2、利用操作日志
目前我们后台录入系统有操作日志表,每个业务操作和变更,都要调用操作日志程序接口,记录入库。
缺点:
》必须要求业务模块都正确调用操作日志接口。
3、利用触发器
对业务模块相关表都加触发器,数据有变动时,触发器将变动数据插入到日志记录表
缺点:
》对业务模块所有相关表都需要加,维护起来也比较费劲
4、解析数据库日志变更日志。
mysql会将所有的数据变更记录到日志中。如果这种方式可行,那么搜索引擎和业务模块将没有耦合。
对于第4种方法,目前我还没有对技术可行性做全面的测试和分析,请各位帮忙分析一下第4中方法的可行性。或者大家有更好的办法。目前这个问题比较棘手,希望大家多多帮忙!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值