FileSwitchDirectory 学习笔记 并在solr上的使用
FileSwitchDirectory实现原理与应用
FileSwitchDirectory是lucene的另一种Directory实现类,从名字个就可以理解为文件切换的Directory实现,
的确是针对lucene的不同的索引文件使用不同的Directory .借助FileSwitchDirectory整合不同的Directory实现类的优点于一身。
比如MMapDirectory,借助内存映射文件方式提高性能,但又要减少内存切换的可能 ,当索引太大的时候,内存映射也需要不断地切换,这样优点也可能变缺点,而之前的NIOFSDirectory实现java NIO的方式提高高并发性能,但又因高并发也会导致IO过多的影响,所以这次可以借助FileSwitchDirectory发挥他们两的优点。
首先将索引目录里占比例比较小的文件使用MMapDirectory,这样几乎可以全部映射到内存里了。。而占有大比例的文档存储文件交由于NIOFSDirectory方式读取。
这个结合不错呀。。
FileSwitchDirectory实现代码解析
FileSwitchDirectory的代码很简单,因为可以理解为它就是一个Dao的入口也是个控制器,所以它并没有具体的文件操纵实现。
先了解它的构造是:
<directoryFactory class="solr.MMapDirectoryFactory"><str name="unmap">true</str><lst name="filetypes"><bool name="fdt">false</bool><bool name="fdx">false</bool></lst></directoryFactory>
转载请写明引用:FileSwitchDirectory 学习笔记 并在solr上的使用