Interoperando com Java LuceneFormatos de arquivoArquivos 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: .Diretório índiceApó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.Código fonte JavaA 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);
Usando LuceneIndexCreation.jarPara 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:
.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 , 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 , 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 , pois ela
aumenta o tamanho do índice em cerca de cinco vezes
aproximadamente.