Apache Lucene är en fullfjädrad text sökmotor bibliotek skriven i Java . Du kan använda Lucene att indexera och söka någon form av textdokument . Att konvertera en Portable Document Format ( PDF ) -fil i ett textformat som Lucene kan indexera , kan du använda PDFBox öppen källkod klass som har speciella metoder specifikt för Lucene . Helt enkelt ge till PDF-filnamnet till PDFBox och få ett Lucene Document-objekt som kan läggas till i indexet och sökte precis som alla textfil . Instruktioner
en
Välj ett Lucene analysator för att använda för att skapa index , till exempel " StandardAnalyzer . " Skapa ett " IndexWriter " objekt för att hantera att lägga till nya objekt i index , till exempel :
IndexWriter myWriter = ny IndexWriter ( " index " , ny StandardAnalyzer ( ) , true ) ;
2
Ring " LucenePDFDocument " för att få ett Lucene Dokument föremålet för din PDF-fil . Lägg till andra viktiga områden till objektet och lägg objektet till Lucene index . Till exempel :
Dokument pdfDoc = LucenePDFDocument.getDoument ( filename ) ;
pdfDoc.add ( nytt fält ( " titel " , pdf.getTitle ( ) , Field.Store.YES , Field . Index.TOKENIZED ) ) ;
pdfDoc.add ( nytt fält ( " författare " , pdf.getAuthor ( ) , Field.Store.YES , Field.Index.TOKENIZED ) ) ;
myWriter . addDocument ( pdfDoc ) ,
3
Använd " SearchEngine " klass för att söka Lucene index . " SearchEngine " returnerar ett Lucene " Hits " objekt med en lista över "hit" objekt . Till exempel :
SearchEngine Mysearch = ny SearchEngine ( ) ;
Hits myHits = mySearch.performSearch ( searchText ) ;
System.out.println ( " Dokument matchas : " + myHits.length ( ) ) ;
4
iterera genom "hit" objekt för att få mer information om varje match . "Hit " objekt sorteras efter relevans för sökningen , och du kan även få den relativa sökning poäng med " getScore ( ) . " Till exempel :
Iterator ITR = myHits.iterator ( ) ;
samtidigt ( itr.hasNext ( ) ) {
Hit theHit = itr.next ( ) ;
Dokument theDoc = theHit.getDocument ();
System.out.println ( theDoc.get ( "titel" ) + "-" + theHit.getScore ());
} Addera