Apache Lucene ist ein full-featured Textsuchmaschine Bibliothek in Java geschrieben. Sie können Lucene zu indizieren und suchen jede Art von Text-Dokument . Um eine Portable Document Format (PDF) -Datei in einem Text -Format zu konvertieren , dass Lucene Index kann , können Sie das Open-Source- PDFBox Klasse, die speziellen Methoden hat speziell für Lucene verwenden . Geben Sie einfach die PDF-Datei Namen PDFBox und einen Lucene Document -Objekt, das in den Index aufgenommen werden kann, und suchte wie jede Textdatei. Anleitung 
 1 
 auswählen Lucene Analysator bei der Schaffung des Index zu verwenden , zum Beispiel " StandardAnalyzer . " Neues " IndexWriter " Objekt zu handhaben Hinzufügen neuer Elemente in den Index , zum Beispiel: 
 
 IndexWriter myWriter = new IndexWriter ( "index" , neue StandardAnalyzer () , true); 
 2 < p> Rufen " LucenePDFDocument ", um eine Lucene Document Objekt Ihrer PDF -Datei zu erhalten . In anderen wichtigen Bereichen auf das Objekt , und fügen Sie das Objekt an die Lucene -Index . Zum Beispiel: 
 
 Dokument 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 
 Benutzen Sie den " SearchEngine " Klasse, um den Lucene Index zu durchsuchen . " SearchEngine " gibt einen Lucene " Hits" Objekt mit einer Liste der " Hit "-Objekte . Zum Beispiel: 
 
 SearchEngine MySearch = new SearchEngine (); 
 
 Hits myHits = mySearch.performSearch ( searchText ); 
 
 System.out.println ( "Documents abgestimmt : " + myHits.length ()); 
 4 
 durch die " Hit "-Objekte durchlaufen, um weitere Informationen über jedes Spiel zu bekommen. Die " Hit "-Objekte werden von Relevanz für die Suche bestellt , und Sie können sich auch die relative Punktzahl Suche mit " getScore (). " Zum Beispiel: 
 
 Iterator  itr = myHits.iterator (); 
  while ( itr.hasNext ()) { 
 
 Hit theHit = itr.next () ; 
 
 Dokument thedoc = theHit.getDocument (); 
 
 System.out.println ( theDoc.get ( "title" ) + " - " + theHit.getScore ()); 
 
 }