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.
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.
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);
Um schnell mit Zend_Search_Lucene starten zu können, wurde eine JAR Datei (Java) erstellt, um einen Index von der Kommandozeile aus zu erstellen. Für weitere Informationen zu JAR Dateien besuche bitte: http://java.sun.com/docs/books/tutorial/jar/basics/index.html.
LuceneIndexCreation.jar verwendet Textdateien und erstellt daraus den Index. Verwendung:
java -jar LuceneIndexCreation.jar [-c] [-s] <document_dir> <index_dir> -c - erzwinge Index mit Groß- und Kleinschreibung -s - lege Inhalte im Index ab
Dieses Kommando verwendet das Verzeichnis <document_dir>
, inklusive
aller Unterverzeichnisse, und erstellt einen Lucene Index. Der Index besteht aus einem
Satz von Dateien, die in einem separaten Verzeichnis abgelegt werden, dass durch
<index_dir>
spezifiziert wird.
Für jedes zu indizierende Dokument, erstellt LuceneIndexCreation ein Dokumentobjekt mit drei Felder: ein contents Feld mit dem Inhalt des Dokuments, ein modified Feld mit dem Änderungsdatum der Datei und der komplette Pfad und Dateiname in einem path Feld.
Wenn die -c
Option angegeben wird, wird erzwungen, dass der Index die
Groß- und Kleinschreibung beachtet. Andernfalls werden alle Begriffe vor dem Hinzufügen
in den Index in Kleinbuchstaben konvertiert.
Wenn die -s
Option angegeben wird, wird der Dokumenteninhalt auch im
Index abgelegt und kann über die path
und modified
Felder
zurückgeholt werden.
Andernfalls werden nur die path
und modified
Felder
gespeichert und das contents
Feld wird nur indiziert. In diesem Fall muß
der Dokumenteninhalt von seinen originalen Quelle mittels des Pfads zurückgeholt
werden.
Bitte sei vorsichtig, die Verwendung der -s
option vergrößert die
Indexgröße fast um das Fünffache.