Lucene 索引拆分大小库设计

原文: http://tangfl.yo2.cn/

Lucene 索引拆分大小库设计

TangFulin <tangfulin#gmail.com>

一. Index Writer:

1. IndexRebuilder 只重建一个索引,建成后替换 IndexUpdater 的大库,替换的同时清空 IndexUpdater 的小库
2. IndexUpdater 维护 2 个索引:大库 和 小库,定期合并小库到大库(同时合并 delete 记录),并清空小库
3. add:    添加到小库
4. delete:删除大库里的原记录,删除小库里的原记录
5. update:删除大库里的原记录,删除小库里的原记录,add 到小库

二. Index Transfer:(rsync updater 的新索引到 Index Searcher)

1. 增量传送大库和小库的内容到 searcher 的接收目录
2. 如果小库有改动,拷贝小库到 dest 目录 (滚动目录)
3. 如果大库有改动,拷贝大库到 bigidxdest 目录 (不滚动目录,直接覆盖)
4. TODO:bigidxdest 传输出错,不一致的索引的处理

三. Index Searcher

1. 定期检测大库和小库的改动,如果有改动则打开
2. 小库有改动:打开新的索引,预热,滚动
3. 大库有改动:reopen

四. Index Cleaner

1. 定期清理已关闭或跳过的索引 (大库不需要清理)

五. Index Monitor

1. 监控

猜你喜欢

转载自liuxinglanyue.iteye.com/blog/829442
今日推荐