给实时索引加入了merge策略,持续更新时发现有做merge,但索引文件夹中的段数远远大于RealTimeIndexWriter中的段数,就是有些merge的段应该删除,文件夹中没有删除。而关闭searcher之后索引文件夹就变小了,段数也对了。
定位之后发现IndexFileDeleter构造函数中有个checkpoint(segmentInfos,false),false会将第一个commit增加lastFiles,直到close时才做删除。
定位之后发现IndexFileDeleter构造函数中有个checkpoint(segmentInfos,false),false会将第一个commit增加lastFiles,直到close时才做删除。
因为实时索引的deleter并不是lucene自带的deleter,会给人误解以为索引变得巨大,我把那个false改为true就正常了。