Lucene于Directory

MMapDirectory从继承FSDirectory,抵抗jre至今未能解决Mmap close不回收空间(直到full gc恢复之前,)的bug,lucene使用hack资料恢复(只要sun jam)(在线仍然有这个问题,,是什么情况,必须确认)。

间64位置linux下chunk是1G,MMAP之后返回ByteBuffer数组,其IndexInput类是MMapIndexInput。

FSDirectory有三种实现。SimpleFSDirectory,NIOFSDirectory,MMapDirectory,open默认仅对64位,sunjdk,windows或linux或sun os使用MMapDirectory,否则如windows则是SimpleFSDirectory,不然就使用NIOFSDirectory。RAMDirectory仅仅对小索引好,大索引会出现频繁gc。

CompoundFileDirectory仅可读不可写,这暗示cvs中的内容经过一层合并,效率必定慢,包含cfs和cfe文件,del文件不包含。相应合并操作的是在CompoundFileWriter中,NRTCachingDirectory提供一个RAMDIrectory做一个delegate的cache,用于nrt search,不太适合的修改,然而,高实时性的场景。

版权声明:本文博主原创文章,博客,未经同意不得转载。

原文地址:https://www.cnblogs.com/zfyouxi/p/4818873.html