Apache Lucene é uma biblioteca cheia de recursos motor de busca de texto escrito em Java. Você pode usar o Lucene para indexar e pesquisar qualquer tipo de documento de texto. Para converter um arquivo Portable Document Format (PDF) do arquivo para um formato de texto que pode Lucene índice, você pode usar a classe de código aberto PDFBox que tem métodos especiais especificamente para Lucene. Basta fornecer o nome do arquivo PDF para PDFBox e obter um objeto de documento Lucene que podem ser adicionadas ao índice e procurado , assim como qualquer arquivo de texto. Instruções
1
Selecione um analisador Lucene para usar na criação do índice , por exemplo " StandardAnalyzer ". Crie um objeto " IndexWriter " para lidar com a adição de novos itens para o índice, por exemplo :
IndexWriter myWriter = new IndexWriter ( "index" , novo StandardAnalyzer () , true);
2
Chamada " LucenePDFDocument " para obter um objeto de documento Lucene do seu arquivo PDF. Adicione outros campos-chave para o objeto e adicionar o objeto com o índice Lucene. Por exemplo :
Documento PDFDoc = LucenePDFDocument.getDoument (filename) ;
pdfDoc.add (new Field ( "title" , pdf.getTitle () , Field.Store.YES , Field. Index.TOKENIZED ) );
pdfDoc.add (new Field ( "autor " , pdf.getAuthor () , Field.Store.YES , Field.Index.TOKENIZED ) );
myWriter . addDocument ( PDFDoc );
3
Use a classe " Mecanismo de Pesquisa " para procurar o índice Lucene. " Mecanismo de Pesquisa " retorna um " Acessos " objeto Lucene com uma lista de objetos "hit" . Por exemplo :
Mecanismo de Pesquisa MySearch = new Mecanismo de Pesquisa ();
Acessos myHits = mySearch.performSearch ( searchText );
System.out.println (" Documentos encontrados: " + myHits.length ());
4
Iterate através do " Hit" objetos para obter mais informações sobre cada jogo. A "Hit " objetos são ordenados por relevância para a pesquisa, e você também pode obter a pontuação busca parente com " getScore (). " Por exemplo :
Iterator itr = myHits.iterator ();
while ( itr.hasNext ()) {
Hit theHit = itr.next () ;
Documento TheDoc = theHit.getDocument ();
System.out.println ( theDoc.get ( "title" ) + "-" + theHit.getScore ()); < br >
}