Hvordan indekser Søk en PDF-fil i Java med Lucene
Apache Lucene er en fullverdig tekst søkemotor bibliotek skrevet i Java. Du kan bruke Lucene å indeksere og søke noen form for tekstdokument. For å konvertere en Portable Document Format (PDF) fil i et tekstformat som Lucene kan indeksen, kan du bruke PDFBox åpen kildekode klasse som har spesielle metoder spesielt for Lucene. Bare gi PDF-filen navn til PDFBox og få en Lucene Dokumentobjekt som kan legges til i indeksen og søkte akkurat som en hvilken som helst tekstfil.
Bruksanvisning
1 Velg en Lucene analysator å bruke i indeksen, for eksempel "StandardAnalyzer." Lag en "IndexWriter" objekt å håndtere legge til nye elementer til indeksen, for eksempel:
IndexWriter myWriter = ny IndexWriter ( "indeks", ny StandardAnalyzer (), true);
2 Ring "LucenePDFDocument" for å få en Lucene Dokumentobjekt i PDF-filen. Legg til andre viktige felt til objektet og legge objektet til Lucene indeksen. For eksempel:
Dokument pdfdoc = LucenePDFDocument.getDoument (filnavn);
pdfDoc.add (ny Field ( "title", pdf.getTitle (), Field.Store.YES, Field.Index.TOKENIZED));
pdfDoc.add (ny Field ( "forfatter", pdf.getAuthor (), Field.Store.YES, Field.Index.TOKENIZED));
myWriter.addDocument (pdfdoc);
3 Bruk "Search" class å søke i Lucene indeksen. "Search" returnerer en Lucene "Treff" objekt med en liste over "hit" stedene. For eksempel:
Search Mysearch = new Search ();
Hits myHits = mySearch.performSearch (SEARCH);
System.out.println ( "Dokumenter matchet:" + myHits.length ());
4 Gjenta for "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:
Iterator <Hit> ITR = myHits.iterator ();
while (itr.hasNext ()) {
Hit theHit = itr.next ();
Dokument theDoc = theHit.getDocument ();
System.out.println (theDoc.get ( "title") + "-" + theHit.getScore ());
}