文档的索引过程是通过 DocumentsWriter 的内部数据处理链完成的, DocumentsWriter 可以实现同时添加多个文档并将它们写入一个临时的 segment 中,完成后再由 IndexWriter 和 SegmentMerger 合并到统一的 segment中去。DocumentsWriter 支持多线程处理,即多个线程同时添加文档,它会为每个请求分配一个
DocumentsWriterThreadState 对象来监控此处理过程。处理时通过 DocumentsWriter 初始化时建立的DocFieldProcessor 管理的索引处理链来完成的,依次处理为 DocFieldConsumers、DocInverter、TermsHash、FreqProxTermsWriter、TermVectorsTermsWriter、NormsWriter 以及 StoredFieldsWriter 等。
索引创建处理过程及类的主线请求链表如下图所示:
索引创建过程
最新推荐文章于 2024-06-05 17:27:44 发布