DocFieldProcessorPerField 创建的过程序列图

document的写入是通过DocFieldProcessorPerThread类做的,实际上在lucene的文件里面(_x.fdx,_x.fdt,_x.fnm)没有document的概念,存储的是filed属性和值,filed的值是存储在_x.fdt文件里面 ,field的属性是存在在_x.fnm,(属性就是是否分词,是否存储等等) 而field的写入是通过DocFieldProcessorPerThread.processDocument实现的,这个方法里面会遍历索引的filed,并创建DocFieldProcessorPerField  实现写入的

你可能感兴趣的:(Lucene)