Arquivos Zend_Search_Lucene são arquivos de índice binários compatíveis com a versão 1.4 ou superior do Lucene.
Uma descrição detalhada deste formato está disponível aqui: http://lucene.apache.org/java/docs/fileformats.html.
Após a criação do índice, o diretório índice conterá os seguintes arquivos:
O arquivo segments contém uma lista de
segmentos de índice.
Os arquivos *.cfs contém segmentos de
índice. Nota! Um índice otimizado terá apenas um único
segmento.
O arquivo deletable contém uma lista de
arquivos que não são mais utilizados pelo índice, mas que não puderam
ser removidos.
A listagem do programa Java abaixo oferece um exemplo de como indexar um arquivo usando Java Lucene:
/**
* Index creation:
*/
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);
Para acelerar o aprendizado do Zend_Search_Lucene, rode o arquivo JAR (Java) abaixo, conforme o exemplo, para gerar um índice a partir da linha de comando. Para maiores informações sobre arquivos JAR visite: http://java.sun.com/docs/books/tutorial/jar/basics/index.html.
O programa LuceneIndexCreation.jar processa arquivos de texto, gerando índices a partir deles . Utilização:
java -jar LuceneIndexCreation.jar [-c] [-s] <document_dir> <index_dir>
-c - force index to be case sensitive
-s - store content in the index
Este comando processa o diretório
<document_dir>, incluíndo todos os seus subdiretórios,
produzindo um índice Lucene. O índice é um conjunto de arquivos que serão
armazenados em um diretório reservado especificado por
<index_dir>.
Para cada documento a ser indexado, LuceneIndexCreation cria um objeto documento contendo três campos: um campo contents que armazena o corpo do documento, um campo modified indicando a hora de modificação do arquivo, e um campo path contendo o nome e caminho completo para o arquivo.
O parâmetro -c, quando especificado, força o índice
a ser sensível à caixa. Se omitido, todos os termos serão convertidos para
caractéres minúsculos antes de serem adicionados ao índice.
O parâmetro -s, determina que o campo
contents seja gravado no índice para ser retornado junto com
os campos path e modified.
Se omitido, contents será indexado e path
e modified serão armazenados. Neste caso o conteúdo do
documento deverá ser recuperado a partir de uma fonte original indicada
pelo campo path.
Seja criterioso ao usar a opção -s, pois ela
aumenta o tamanho do índice em cerca de cinco vezes
aproximadamente.