27.8. Java Lucene との相互運用

27.8.1. ファイルフォーマット

Zend_Search_Lucene のインデックスファイルのフォーマットは、 Lucene バージョン 1.4 以降とバイナリ互換性があります。

このファイルフォーマットについての詳細な説明は http://lucene.apache.org/java/docs/fileformats.html にあります。

27.8.2. インデックスディレクトリ

インデックスを作成すると、 インデックスディレクトリにはいくつかのファイルが出来上がります。

  • segments ファイルはインデックスセグメントの一覧です。

  • *.cfs ファイルにはインデックスセグメントが含まれます。 注意! 最適化されたインデックスは常にひとつのセグメントだけになります。

  • deletable ファイルは、 もはやインデックスからは使用されていないけれども削除できないファイルの一覧です。

27.8.3. Java のソースコード

以下の Java プログラムリストは、Java Lucene を使用してファイルのインデックスを作成する方法を示す例です。

/**
* インデックスの作成
*/
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);