Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> Portable Document Format >> .

Come indice e cerca un PDF in Java con Lucene

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

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 ( ) ) ;

}

 

software © www.354353.com