搜索引擎索引的策略

1.建立索引
(1)两遍文档遍历法来建立索引。
第一遍扫描文档集合,收集并统计信息,比如 文档集合中有多少个文档(N),包含多少个不同单词(M),单词在多少个文档中出现过的信息(DF),估计出最终最终索引的存储的内存
第二遍开始真正建立每个单词的倒排列表信息。ID TF 信息,建立索引后存储到磁盘
缺点:吃内存。文档大的时候容易出现内存不足问题
(2)排序法
在内存分配固定大小。存放词典信息和索引的中间结果。当内存快要消耗完,把中间结果存盘,清空进入下一轮的计算。依次往复,最后对中间结果做内存排序。
缺点:文档越来越多,需要维护词典信息也会越来越多,占用内存比重会越来越大。导致中后期的中间结果可用内存越来越小。

(3)归并法
与排序法类似。但是在排序法上有所优化,每次将内存中的数据存盘,包括词典在内的所有中间结果都要写盘,这样内存所有内存都可以清空,后续建立所以可以使用全部的定额内存。

2.动态索引
搜索是实时的,通过倒排索引,临时索引、和删除文档列表来维护实时的要求

3.索引的更新策略
(1)完全重建
文档达到一定数量时候,将新增文档和原来的文档进行合并,让重新创建新的索引,重建后的新索引在替代旧索引。
缺点:重建比较耗时 耗空间,必须完成索引新建好才能替换旧的,所以内存还需要一段时间维护旧索引。
(2)再合并
(3)原地更新
(4)混合

猜你喜欢

转载自blog.csdn.net/tsj11514oo/article/details/121463042