Your SlideShare is downloading. ×
Vom dokument parser zum lucene index
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Vom dokument parser zum lucene index

778
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
778
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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 einfügen Geparste Dokument schließen 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 für Indexupdate wichtig uid x für 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 Bedürfnis nach Informationen innerhalb von großen Datenmenge erfüllen. 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 ungefähr die gleiche größe. 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 Verknüpfung 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 Erhöhung 3 Der 1 3 im 2 Erhöhung 1 3 im 3 im 2 2 3 Juli 2 Juli 2 2 3 Juli 3 Neue 1 1 Neue 1 steigt 1 1 steigt 1 Umsatz 2 2 3 Umsatz 2 Umsatzprognose 1 1 Umsatz 3Umsatzprognose 1 Vorbereitung der Index-Suche 21
  • 22. Vergleich Invertierte Listen Signatur-Dateien Suffix-Arrays Lucene Invertierte Index Boolesches Retrieval ja ja ja jaAlgebraisches Retrieval ja nein nein ja Fuzzy Retrieval ja nein nein ja Größe O(n0.85) O(n) O(n) O(n0.85) 0.8 Anfragedauer O(n ) O(n) O(logn) O(n0.8) Kompression sehr gut gut gut sehr gut Vorbereitung der Index-Suche 22
  • 23. Die Lucene Index Datenstruktur Lucene Index Dokument ... Feld ... Term . ... ... Feld ... Dokument ... Vorbereitung der Index-Suche 23
  • 24. Vielen Dank für Ihre Aufmerksamkeit!