36.8. 与 Java Lucene 的互操作性
36.8.1. 文件格式
Zend_Search_Lucene 的索引文件格式和 1.4 或更高版本的 Java Lucene 二进制兼容。
关于文件格式的更详细的描述在这里: Http://lucene.apache.org/java/docs/fileformats.HTML。 [9]
36.8.2. 索引目录
在创建了索引之后,索引目录中将包含下列文件:
segments
文件是一个索引分段的清单。*.cfs
文件包含索引分段。请注意!优化了的索引总是只有一个分段。deletable
文件是一个不再被索引使用但是无法删除的文件清单。
36.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 版开始)。