Vom dokument parser zum lucene index

  • View
    755

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Transcript

  • 1. Vom Dokument-Parser zum Lucene Index. Josiane Gamgo Maerz 2009
  • 2. Agenda Indizierungsprozess: bersicht Dokument-Parser Das Lucene Dokument Indizierungstechniken Die Lucene Index Datenstruktur Vorbereitung der Index-Suche 2
  • 3. Indizierungsprozess: bersichtInput Parser Lucene Analyzer Dokument Index Inverted Index Vorbereitung der Index-Suche 3
  • 4. Dokument-Parser Arbeitsweise Dokumentenhandler Beispiel einen PDF Parser: PDFBOX Adaptierbarkeit Vorbereitung der Index-Suche 4
  • 5. Arbeitsweise Interface DocumentHandler implementieren Neue Instanz der Parser erzeugen Neue Instanz von org.apache.lucene.document.Document Zu parsende Dokument ffnen Attribute und Werte zu Lucene Dokument einfgen Geparste Dokument schlieen Vorbereitung der Index-Suche 5
  • 6. Arbeitsweise extends Interface Parser Lucene Dokument DocumentHandler Insidethe Documenthandler Lucene Dokument Interface InputStream DocumentHandler Vorbereitung der Index-Suche 6
  • 7. Dokumentenhandler Die Klasse DocumentHandler()Public class parserTyp implements DocumentHandler{...}public interface DokumentHandler {/** * Erzeugt ein Lucene Dokument aus ein InputStream * */Document getDocument(InputStream is)throw DocumentHandlerException;} Vorbereitung der Index-Suche 7
  • 8. PDF Dokument LucenePDFDocument ParseDocument (InputStream) DocumentcosDoc .... cosDoc Memory Text DecryptDocument PDFTextstripper PDFTextstripper (cosDoc) Metadata
  • 9. Adaptierbarkeit class ParserHandlercollector Grammatik Class Lparser extends Handlercollector{} Vorbereitung der Index-Suche 9
  • 10. Das Lucene Dokument Aufbau Datenstruktur Index Erstellung mit mapReduce Vorbereitung der Index-Suche 10
  • 11. Aufbau Zu jedem zu parsende Datei eine org.apache.lucene.document.Document Instanz.private Document doc; Mit DokumentHandler: Text Inhalte extrahieren und Instanz von Lucene Dokument erstellen. Beispiel: Erstellung von Lucene Dokument mit SAX. Vorbereitung der Index-Suche 11
  • 12. Datenstruktur LuceneHTMLDokument Factory-Methode indexed tokenized stored Field.Text(String, String) x x x Field.Text(String, Reader) x x Field.KeyWord(String,date) x x Field.UnIndexed(String, String) x Field.Unstored(String,String) x x Vorbereitung der Index-Suche 12
  • 13. Datenstruktur LucenePDFDocument Field indexed tokenized stored Bemerkung Url x Url lokal oder im Netz modified x fr Indexupdate wichtig uid x fr inkrementelle Indizierung content x x Der eigentliche Inhalt Summary x Die ersten 500 Zeichen Vorbereitung der Index-Suche 13
  • 14. Index Erstellung mit MapReduce master A-f G-p Q-z Inverter A-f Parser A-f G-p Q-z Parser Inverter G-p ...... ... Inverter Parser A-f G-p Q-z Q-z Map Phase Reduce Phase Segment Files Disk Vorbereitung der Index-Suche 14
  • 15. Indizierungstechniken Was ist IR(Information Retrieval)? Indizierungstechniken in der IR Lucene Indizierungstechnik Vergleich Vorbereitung der Index-Suche 15
  • 16. Was ist IR? Verlorene Informationen wiedergewinnen Bedrfnis nach Informationen innerhalb von groen Datenmenge erfllen. Vorbereitung der Index-Suche 16
  • 17. Indizierungstechniken in der IR Signatur Dateien Suffix-Arrays Invertierte Listen Vorbereitung der Index-Suche 17
  • 18. Signatur Dateien Zerlegung der block1 block2 Heute ist Montag Rosenmontag in Bayern Dokumente in ungefhr die gleiche gre. h(block1) h(block2) Erstellung einer 001 010 Signatur Datei mittels Hashfunktion. Suche nach: Montag AND Rosenmontag Anfrage = Boolesche 001 + 010 = 011 UND oder ODER Verknpfung Vorbereitung der Index-Suche 18
  • 19. Suffix-Arrays Suffixe eines Dokument speichern Representation der Suffixe in eine Baum Struktur, in Lexicographischer Reihenfolge Suche nach ra Vorbereitung der Index-Suche 19
  • 20. Invertierte Listen Zerlegung des Dokument in Terms Zuordnung von Dokument Indexterm zu Dokument-IDs. Sortierung der Paare (Terms , DokumentIDs) Terme in Index Dateien speichern Vorbereitung der Index-Suche 20
  • 21. Lucene Indizierungstechnik Terms Dokument Id Terms Frequenz Posting List Der 3 Erhhung 3 Der 1 3 im 2 Erhhung 1 3 im 3 im 2 2 3 Ju