Apache Lucene is een full -featured text search engine bibliotheek geschreven in Java . U kunt gebruik maken van Lucene te indexeren en zoeken elk soort tekstdocument . Naar een Portable Document Format (PDF ) -bestand converteren naar een tekstformaat dat Lucene kan indexeren , kunt u de PDFBox open source klasse die specifiek speciale methoden heeft voor Lucene gebruiken . Gewoon zorgen voor de PDF- bestandsnaam om PDFBox en krijg een Lucene document object dat kan worden toegevoegd aan de index en zocht net als elk tekstbestand . Instructies 1 Selecteer een Lucene analyzer te gebruiken bij het creëren van de index , bijvoorbeeld " StandardAnalyzer . " Maak een " IndexWriter " object te hanteren toevoegen van nieuwe items aan de index , bijvoorbeeld : IndexWriter myWriter = new IndexWriter ( " index " , nieuw StandardAnalyzer ( ) , true ) ; kopen van 2 Oproep " LucenePDFDocument " naar een Lucene document voorwerp van uw PDF- bestand te krijgen . Voeg andere belangrijke gebieden om het object en voeg het object naar de Lucene index . Bijvoorbeeld : Document PDFDoc = LucenePDFDocument.getDoument ( filename ) ; pdfDoc.add (nieuw Field ( "titel " , pdf.getTitle ( ) , Field.Store.YES , Field . Index.TOKENIZED ) ) ; pdfDoc.add (nieuw Field ( 'auteur' , pdf.getAuthor ( ) , Field.Store.YES , Field.Index.TOKENIZED ) ) ; myWriter . addDocument ( PDFDoc ) ; 3 Gebruik de " SearchEngine " class om de Lucene index doorzoeken . " SearchEngine " retourneert een Lucene " Hits " object met een lijst van " Hit " objecten. Bijvoorbeeld : SearchEngine Mysearch = new SearchEngine ( ) ; Hits myHits = mySearch.performSearch ( zoektekst ) ; System.out.println ( " Documenten overeen: " + myHits.length ( ) ) ; 4 Doorloop de " Hit " objecten om meer informatie over elke wedstrijd krijgen . De " Hit " objecten zijn gerangschikt volgens de relevantie voor het zoeken , en u kunt ook de relatieve zoekopdracht score te verkrijgen met " getScore ( ) . " Bijvoorbeeld : Iterator ITR = myHits.iterator ( ) ; terwijl ( itr.hasNext ( ) ) { Hit theHit = itr.next ( ) ; Document thedoc = theHit.getDocument ( ) ; System.out.println ( theDoc.get ( " title " ) + " - " + theHit.getScore ( ) ) ; < br > }
|