Extensibility | Zend_Search_Lucene Programmer's Reference Guide | Advanced

# Interoperating with Java Lucene

# File Formats

Zend_Search_Lucene index file formats are binary compatible with Java Lucene version 1.4 and greater.

A detailed description of this format is available here: `http://lucene.apache.org/java/2_3_0/fileformats.html` [1] .

# Index Directory

After index creation, the index directory will contain several files:

- The segments file is a list of index segments.

- The *.cfs files contain index segments. Note! An optimized index always has only one segment.

- The deletable file is a list of files that are no longer used by the index, but which could not be deleted.

# Java Source Code

The Java program listing below provides an example of how to index a file using Java Lucene:

1. /**
2. * Index creation:
3. */
4. import org.apache.lucene.index.IndexWriter;
5. import org.apache.lucene.document.*;
7. import java.io.*
9. ...
11. IndexWriter indexWriter = new IndexWriter("/data/my_index",
12. new SimpleAnalyzer(), true);
14. ...
16. String filename = "/path/to/file-to-index.txt"
17. File f = new File(filename);
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. FileInputStream is = new FileInputStream(f);
24. Reader reader = new BufferedReader(new InputStreamReader(is));
25. doc.add(Field.Text("contents", reader));
27. indexWriter.addDocument(doc);

[1] The currently supported Lucene index file format version is 2.3 (starting from Zend Framework 1.6).

Extensibility | Zend_Search_Lucene Programmer's Reference Guide | Advanced