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.