27.8. Zusammenarbeit Mit Java Lucene

27.8.1. Dateiformate

Zend_Search_Lucene Indexdateiformate sind binär kompatibel mit Lucene Version 1.4 und höher.

Eine detaillierte Beschreibung dieses Formats ist hier erhältlich: http://lucene.apache.org/java/docs/fileformats.html.

27.8.2. Indexverzeichnis

Nach der Indexerstellung wird das Indexverzeichnis verschiedene Dateien enthalten:

  • Die segments Datei ist eine Liste der Indexsegmente.

  • Die *.cfs Dateien enthalten die Indexsegmente. Beachte! Ein optimierter Index enthält immer nur ein Segment.

  • Die deletable Datei ist eine Liste von Dateien, die nicht mehr vom Index verwendet werden, aber nicht gelöscht werden konnten.

27.8.3. Java Quellcode

Das unten gelistete Java Programm stellt ein Beispiel für die Indizierung einer Datei mit Java Lucene dar:

/**
* Indexerstellung:
*/
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);