41.8. 与 Java Lucene 的互操作性

41.8.1. 文件格式

Zend_Search_Lucene 的索引文件格式和 1.4 或更高版本的 Java Lucene 二进制兼容。

关于文件格式的更详细的描述在这里: http://lucene.apache.org/java/docs/fileformats.html[9]

41.8.2. 索引目录

在创建了索引之后,索引目录中将包含下列文件:

  • segments 文件是一个索引分段的清单。

  • *.cfs 文件包含索引分段。请注意!优化了的索引总是只有一个分段。

  • deletable 文件是一个不再被索引使用但是无法删除的文件清单。

41.8.3. Java 源代码

下面的 Java 程序提供了一个如何使用 Java Lucene 索引文件的例子:

/**
* Index creation:
*/
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.document.*;

import java.io.*

...

IndexWriter indexWriter = new IndexWriter("/data/my_index",
                                          new SimpleAnalyzer(), true);

...

String filename = "/path/to/file-to-index.txt"
File f = new File(filename);

Document doc = new Document();
doc.add(Field.Text("path", filename));
doc.add(Field.Keyword("modified",DateField.timeToString(f.lastModified())));
doc.add(Field.Text("author", "unknown"));
FileInputStream is = new FileInputStream(f);
Reader reader = new BufferedReader(new InputStreamReader(is));
doc.add(Field.Text("contents", reader));

indexWriter.addDocument(doc);



[9] 当前支持的 Lucene 索引文件格式版本是 v2.3(从ZF 1.6 版开始)。