海量数据的管理及增量索引(全文检索系统)

对于分布式的全文检索系统,海量数据的管理与增量索引策略显得尤为重要,因为很多用户时时地对数据进行检索,而后台又有多个子系统在时时地往总库写数据,而各客户端需要对添加到库里的数据实时地查询到。而对于全文检索系统用户查询到的提前必须对入到库里的数据进行索引,这样用户才能看到数据。而且每天的数据量多的时候可能有好几十万条,每一条数据基本上都是在70K以上,因为好几个字段都是全文字段。这让我在设计方案时颇费心计呀。最终我的方案出来了,程序也基本上写好了,不过效率如何还得测试测试。我的方案大致如下:(用的是CNKI的全文检索数据库系统KBase)
 1、使用联合表的思想将多个物理上独立的表在逻辑上统一起来
 2、联合表由年表、月表、日表组成。
 3、每日晚上12点将上一天的日表合并到月表中去,并做索引
 4、每月月初将上一月的月数据合并到当年年表中去,并索引
 5、第3 步是一个可选项,也可以是在月未对所有当月的月数据进行合并,并做一次索引
 6、第4步也可以是到年底对一年的月数据进行一次合并,并做一次索引
对于KBase系统来说这是一个比较好的方案,但若KBase能支持嵌套的联合表和可更新的视图就好了,这样对于月表不需要合并,只需要再建一个联合表或者视图即可,目前的视图由于只能查询,而不能将修改更新回去。而且对于这种系统月表的数据粒度也是比较适中的一个数据级。这样可提高系统的效率,另外加上并行表的支持,这样可以将数据分散到不同的机器上,而由一个视图或者联合表统一管理。这是一种最优的方法,但需要KBase进行一定的改进。

你可能感兴趣的:(数据库,测试,全文检索)