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