Interoperando com Java Lucene

Formatos de Arquivo

Os formatos de arquivos de índice do Zend_Search_Lucene são binários compatíveis com Java Lucene versão 1.4 e superior.

Uma descrição detalhada deste formato está disponível aqui: http://lucene.apache.org/java/2_3_0/fileformats.html [17].

Diretório Índice

Após a criação do índice, o diretório índice conterá alguns arquivos:

  • O arquivo segments é uma lista de segmentos de índice.

  • Os arquivos *.cfs contém segmentos de índice. Nota! Um índice otimizado sempre terá apenas um único segmento.

  • O arquivo deletable é uma lista de arquivos que não são mais utilizados pelo índice, mas que não puderam ser removidos.

Código Fonte Java

O programa Java abaixo oferece um exemplo de como indexar um arquivo usando Java Lucene:

/**
* Criação do índice:
*/
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);


[17] A versão do formato de arquivo de índice Lucene suportado atualmente é a 2.3 (a partir do Zend Framework 1.6).