拡張性

Java Lucene との相互運用

ファイルフォーマット

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

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

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

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

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

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

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

Java のソースコード

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

  1. /**
  2. * インデックスの作成
  3. */
  4. import org.apache.lucene.index.IndexWriter;
  5. import org.apache.lucene.document.*;
  6.  
  7. import java.io.*
  8.  
  9. ...
  10.  
  11. IndexWriter indexWriter = new IndexWriter("/data/my_index",
  12.                                           new SimpleAnalyzer(), true);
  13.  
  14. ...
  15.  
  16. String filename = "/path/to/file-to-index.txt"
  17. File f = new File(filename);
  18.  
  19. Document doc = new Document();
  20. doc.add(Field.Text("path", filename));
  21. doc.add(Field.Keyword("modified",DateField.timeToString(f.lastModified())));
  22. doc.add(Field.Text("author", "unknown"));
  23. Reader reader = new BufferedReader(new InputStreamReader(is));
  24. doc.add(Field.Text("contents", reader));
  25.  
  26. indexWriter.addDocument(doc);
[1]現在 (Zend Framework 1.6 以降) サポートしている Lucene インデックスファイルフォーマットのバージョンは 2.1 です

拡張性