Apache Lucene è un testo completo della libreria motore di ricerca scritto in Java . È possibile utilizzare Lucene per indicizzare e ricercare qualsiasi tipo di documento di testo . Per convertire un file Portable Document Format ( PDF ) in un formato di testo che Lucene può indice , è possibile utilizzare la classe open source PDFBox che ha metodi speciali appositamente per Lucene . Basta fornire il nome del file PDF per PDFBox e ottenere un oggetto Document Lucene che può essere aggiunto per l'indice e cercato come qualsiasi file di testo . Istruzioni
1
Seleziona un analizzatore di Lucene di utilizzare per creare l'indice , per esempio " StandardAnalyzer . " Creare un oggetto " IndexWriter " per gestire l'aggiunta di nuovi elementi per l'indice , per esempio :
IndexWriter myWriter = new IndexWriter ( " indice " , nuovo StandardAnalyzer ( ) , true);
2 < p > Chiamare " LucenePDFDocument " per ottenere un oggetto Document Lucene del file PDF . Aggiungere altri campi chiave per l'oggetto e aggiungere l'oggetto al di Lucene . Per esempio :
Documento PDFDoc = LucenePDFDocument.getDoument ( filename) ;
pdfDoc.add ( nuovo campo ( "title" , pdf.getTitle ( ) , Field.Store.YES , Field. Index.TOKENIZED ) ) ;
pdfDoc.add ( nuovo campo ( "autore" , pdf.getAuthor ( ) , Field.Store.YES , Field.Index.TOKENIZED ) ) ;
myWriter . addDocument ( PDFDoc ) ;
3
Utilizzare la classe " SearchEngine " per cercare di Lucene . " SearchEngine " restituisce un oggetto Lucene " Hits " con una lista di oggetti "hit" . Per esempio :
SearchEngine MySearch = new SearchEngine ( ) ;
Hits myHits = mySearch.performSearch ( Testo di ricerca ) ;
System.out.println ( " Documenti trovati: " + myHits.length ());
4
scorrere gli oggetti "colpo" per avere maggiori informazioni su ogni partita . Gli oggetti "colpo" sono ordinate per rilevanza per la ricerca , e si può anche ottenere il punteggio ricerca relativa a " getScore ( ) . " Per esempio :
Iterator ITR = myHits.iterator ();
mentre ( itr.hasNext ( ) ) {
Hit theHit = itr.next ( ) ;
Documento thedoc = theHit.getDocument ();
System.out.println ( theDoc.get ( " titolo " ) + " - " + theHit.getScore ( ) ) ; < br >
}