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. 监控

相关推荐