Lucene 源码剖析
5 索引是如何存储的
5.1 数据存储类 Directory
Directory 及相关类负责文档索引的存储。
5.1.1 org.apache.lucene.store.Directory
一个 Directory 对象是一系列统一的文件列表(a at list of les)。文件可以在它们被
创建的时候一次写入,一旦文件被创建,它再次打开后只能用于读取(read)或者删除
(delete)操作。并且同时在读取和写入的时候允许随机访问(random access)。
在这里并不直接使用 Java I/O API,但是更确切地说,所有 I/O 操作都是通过这个 API 处
理的。这使得读写操作方式更统一起来,如基于内存的索引(RAM-based indices)的实现
(即 RAMDirectory)、通过 JDBC 存储在数据库中的索引、将一个索引存储为一个文件的实
现(即 FSDirectory)。
Directory 的锁机制是一个 LockFactory 的实例实现的,可以通过调用 Directory 实例的
setLockFactory()方法来更改。
- 1
- 2
- 3
- 4
- 5
- 6
前往页