Zusammenarbeit Mit Java Lucene

Dateiformate

Zend_Search_Lucene Indexdateiformate sind binär kompatibel mit der Java Lucene Version 1.4 und größer.

Eine detaillierte Beschreibung dieses Formats ist hier erhältlich: http://lucene.apache.org/java/2_3_0/fileformats.html. [18].

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 vom Index nicht mehr verwendet werden, aber noch nicht gelöscht werden konnten.

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);


[18] Die aktuell unterstützte Version des Lucene Index Dateiformats ist 2.3 (beginnend mit Zend Framework 1.6).