Hur Index och Sök en PDF i Java med Lucene

July 9

Hur Index och Sök en PDF i Java med Lucene


Apache Lucene är en fullfjädrad text sökmotor bibliotek skriven i Java. Du kan använda Lucene att indexera och söka alla typer av textdokument. För att konvertera en Portable Document Format (PDF) fil i ett textformat som Lucene kan index, kan du använda PDFBox öppen källkod klass som har speciella metoder specifikt för Lucene. Helt enkelt ge PDF-filnamn till PDFBox den och få en Lucene dokument objekt som kan läggas till i index och sökte precis som alla textfil.

Instruktioner

1 Välja ett Lucene analysator för användning i att skapa index, till exempel "StandardAnalyzer." Skapa en "IndexWriter" objekt för att hantera lägga till nya objekt i index, till exempel:

IndexWriter myWriter = new IndexWriter ( "index", ny StandardAnalyzer (), true);

2 Ring "LucenePDFDocument" för att få en Lucene dokument föremål för PDF-filen. Lägg till andra viktiga områden till objektet och lägger till objektet till Lucene index. Till exempel:

Dokument pdfDoc = LucenePDFDocument.getDoument (filnamn);

pdfDoc.add (ny Field ( "titel", pdf.getTitle (), Field.Store.YES, Field.Index.TOKENIZED));

pdfDoc.add (ny Field ( "författare", pdf.getAuthor (), Field.Store.YES, Field.Index.TOKENIZED));

myWriter.addDocument (pdfDoc);

3 Använd "Search" klass för att söka Lucene index. "Search" returnerar ett Lucene "Träffar" objekt med en lista över "Hit" objekt. Till exempel:

Search mySearch = new Search ();

Träffar myHits = mySearch.performSearch (searchText);

System.out.println ( "Dokument matchas:" + myHits.length ());

4 Iterera igenom "träff" 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ängen med "getScore ()." Till exempel:

Iterator <Hit> itr = myHits.iterator ();

while (itr.hasNext ()) {

Hit theHit = itr.next ();

Dokument theDoc = theHit.getDocument ();

System.out.println (theDoc.get ( "titel") + "-" + theHit.getScore ());

}


        

Välkommen till dig för att skicka en kommentar:

            
            
            
            

© 2019 Astrixsoft.com | Contact us: webmaster# astrixsoft.com