Apache Lucene er en full- featured tekst søgemaskine bibliotek skrevet i Java. Du kan bruge Lucene at indeksere og søge nogen form for tekstdokument. At konvertere en Portable Document Format (PDF -fil) i en tekst format, som Lucene kan indeksere , kan du bruge PDFBox open source klasse, som har særlige metoder specielt til Lucene . Du skal blot give den PDF-fil navn til PDFBox og få en Lucene Document objekt, der kan føjes til indekset , og søgte ligesom enhver tekstfil. Instruktioner
1
Vælg et Lucene analysator til brug i skabelsen af indekset , for eksempel " StandardAnalyzer ". Opret en " IndexWriter " objekt til at håndtere tilføje nye elementer til indekset, for eksempel : Hej
IndexWriter myWriter = new IndexWriter ( "index " , nye StandardAnalyzer () , true) ;
2 < p> Ring " LucenePDFDocument " for at få en Lucene Document genstand for din PDF-fil . Tilføj andre nøglefelter til objektet og tilføje objektet til Lucene indeks. For eksempel : Hej
Document pdfDoc = LucenePDFDocument.getDoument (filename ),
pdfDoc.add (ny Field ( "title" , pdf.getTitle () , Field.Store.YES , Field . Index.TOKENIZED )),
pdfDoc.add (ny Field ( "ophavsmand" , pdf.getAuthor () , Field.Store.YES , Field.Index.TOKENIZED )),
myWriter . addDocument ( pdfDoc )
3
Brug " Søgemaskinerne " class for at søge på Lucene indeks. " Søgemaskinerne " returnerer en Lucene " Hits "-objekt med en liste over "hit" objekter. For eksempel : Hej
Søgemaskinerne Mysearch = new Søgemaskinerne ();
Hits myHits = mySearch.performSearch ( searchText )
System.out.println ( "Documents matchede: " + myHits.length ());
4
gentage gennem "hit" objekter for at få mere information om hver kamp . De " Hit " objekter er sorteret efter relevans for søgning, og du kan også få den relative søgning score med " getScore (). " For eksempel : Hej
Iterator ITR = myHits.iterator ();
while ( itr.hasNext ( )) {
Hit theHit = itr.next () ;
Document theDoc = theHit.getDocument ();
System.out.println ( theDoc.get ( "title" ) + "-" + theHit.getScore ()); < br >
}