Archive

Archive for the ‘lucene’ Category

Lucene 3.0 的 Directory 实现

December 6th, 2010 leeing No comments

Lucene中的Directory常用的实现为 FSDirectory以及RAMDirectory.

在Lucene3.0中,FSDirectory已经变为抽象类,它有三种实现:

  1. SimpleFSDirectory,它使用的是java.io.RandomAccessFile实现的,但是它拥有很差的并发性能,多个线程访问时会产生瓶颈,因为在多个线程访问相同文件的时候会使用同步。
  2. NIOFSDirectory,在读取时相同文件时,它使用java.nio中FileChannel的positional io来防止同步。但可惜由于一个仅在Windows上存在的JRE-bug,在windows平台上它不是一个好的选择,不过其它平台则没有这个问题。
  3. MMapDirectory在读取时使用了内存映射的IO。在你的索引大小有很多虚拟内存时,这时一个很好的选择,例如,如果你运行一个64位的JRE上,或你运行于32位的JRE但你的索引大小足于填充虚拟内存空间。
Categories: lucene Tags: