Apache Lucene er en fullverdig tekst søkemotor bibliotek skrevet i Java. Du kan bruke Lucene å indeksere og søke noen form for tekstdokument. Å konvertere en Portable Document Format (PDF -fil) til et tekstformat som Lucene kan indeks, kan du bruke PDFBox åpen kildekode klasse som har spesielle metoder spesielt for Lucene . Bare gi den PDF -filen navn til PDFBox og få en Lucene Document objekt som kan legges til i indeksen og søkte akkurat som hvilken som helst tekstfil . Instruksjoner
en
Velg et Lucene analysator å bruke i å skape indeksen, for eksempel " StandardAnalyzer . " Lag en " IndexWriter " objekt for å håndtere legge til nye elementer i indeksen, for eksempel : en
IndexWriter myWriter = ny IndexWriter ( "indeks" , ny StandardAnalyzer ( ) , true);
2 < p> Ring " LucenePDFDocument " for å få en Lucene Document objekt av PDF-filen . Legg til andre viktige felt til objektet og legge objektet til Lucene indeksen. For eksempel : en
Document pdfDoc = LucenePDFDocument.getDoument (filename ) ;
pdfDoc.add ( ny Field ( "title" , pdf.getTitle ( ) , Field.Store.YES , Felt . Index.TOKENIZED ));
pdfDoc.add ( ny Field ( "forfatter " , pdf.getAuthor ( ) , Field.Store.YES , Field.Index.TOKENIZED ));
myWriter . addDocument ( pdfDoc ) ;
3
Bruk " SearchEngine " class å søke på Lucene indeksen. " SearchEngine " returnerer en Lucene " Treff " objekt med en liste over " Hit " objekter . For eksempel : en
SearchEngine Mysearch = new SearchEngine ();
Treff myHits = mySearch.performSearch ( searchtext ) ;
System.out.println ( " Dokumenter matchet : " + myHits.length ( ));
4
Iterate gjennom " Hit " objekter for å få mer informasjon om hver kamp . "Hit " objekter er sortert etter relevans til søket , og du kan også få den relative søk stillingen " getScore ( ) . " For eksempel : en
iterator itr = myHits.iterator ();
while ( itr.hasNext ( ) ) {
Hit theHit = itr.next ( ) ;
Document theDoc = theHit.getDocument ();
System.out.println ( theDoc.get ( "title" ) + "-" + theHit.getScore ( ) );
}