Vom dokument parser zum lucene index
-
Upload
josiane-g -
Category
Technology
-
view
762 -
download
2
description
Transcript of Vom dokument parser zum lucene index
Vom Dokument-Parser zum Lucene Index.
Josiane Gamgo
Maerz 2009
Vorbereitung der Index-Suche 2
Agenda
Indizierungsprozess: Übersicht
Dokument-Parser
Das Lucene Dokument
Indizierungstechniken
Die Lucene Index Datenstruktur
Vorbereitung der Index-Suche 3
Indizierungsprozess: Übersicht
ParserInput Lucene Dokument
Analyzer
Inverted IndexIndex
Vorbereitung der Index-Suche 4
Dokument-Parser
Arbeitsweise
Dokumentenhandler
Beispiel einen PDF Parser: PDFBOX
Adaptierbarkeit
Vorbereitung der Index-Suche 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 6
Arbeitsweise
InputStreamInterface DocumentHandler
Lucene Dokument
ParserInterface DocumentHandler
extends
Lucene Dokument
Inside the Documenthandler
Vorbereitung der Index-Suche 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;
}
ParseDocument(InputStream)
PDF Dokument
MemorycosDoccosDoc ....
DecryptDocument(cosDoc)
PDFTextstripperPDFTextstripper
Text
Metadata
Document
LucenePDFDocument
Vorbereitung der Index-Suche 9
Adaptierbarkeit
classHandlercollector
ParserGrammatik
Class Lparser extends Handlercollector{}
Vorbereitung der Index-Suche 10
Das Lucene Dokument
Aufbau
Datenstruktur
Index Erstellung mit mapReduce
Vorbereitung der Index-Suche 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 12
Datenstruktur
LuceneHTMLDokument
Factory-Methode indexed tokenized storedField.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 13
Datenstruktur
LucenePDFDocument
Bemerkung
für Indexupdate wichtig
für inkrementelle Indizierung
Der eigentliche Inhalt
Die ersten 500 Zeichen
Field indexed tokenized storedUrl x Url lokal oder im Netz
modified x
uid x
content x x
Summary x
Vorbereitung der Index-Suche 14
Index Erstellung mit MapReduce
...
Parser
Parser
Parser
...
A-f G-p Q-z
A-f G-p Q-z
A-f G-p Q-z
...
InverterInverter
Inverter
Inverter
A-f
G-p
Q-z
master
...
MapPhase Segment Files Reduce Phase
Disk
Vorbereitung der Index-Suche 15
Indizierungstechniken
Was ist IR(Information Retrieval)?
Indizierungstechniken in der IR
Lucene Indizierungstechnik
Vergleich
Vorbereitung der Index-Suche 16
Was ist IR?
Verlorene Informationen wiedergewinnen
Bedürfnis nach Informationen innerhalb von
großen Datenmenge erfüllen.
Vorbereitung der Index-Suche 17
Indizierungstechniken in der IR
Signatur Dateien
Suffix-Arrays
Invertierte Listen
Vorbereitung der Index-Suche 18
Signatur Dateien
Zerlegung der Dokumente in ungefähr die gleiche größe.
Erstellung einer Signatur Datei mittels Hashfunktion.
Anfrage = Boolesche UND oder ODER Verknüpfung
block1 block2Heute ist Montag
001 010
001 + 010 = 011
Rosenmontag in Bayern
h(block1) h(block2)
Suche nach: Montag AND Rosenmontag
Vorbereitung der Index-Suche 19
Suffix-Arrays
Suffixe eines Dokument speichern
Representation der Suffixe in eine Baum Struktur, in Lexicographischer Reihenfolge
Suche nach ”ra”
Vorbereitung der Index-Suche 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 21
Lucene IndizierungstechnikTermsDer 3
Erhöhung 3im 2im 3Juli 2Juli 3
Neue 1steigt 1
Umsatz 2Umsatz 3
Umsatzprognose 1
Dokument IdTerms Frequenz Posting ListDer 1 3
Erhöhung 1 3im 2 2 3Juli 2 2 3
Neue 1 1steigt 1 1
Umsatz 2 2 3Umsatzprognose 1 1
Vorbereitung der Index-Suche 22
Vergleich
Invertierte Listen Signatur-Dateien Suffix-Arrays Lucene Invertierte IndexBoolesches Retrieval ja ja ja ja
Algebraisches Retrieval ja nein nein jaja nein nein ja
GrößeAnfragedauerKompression sehr gut gut gut sehr gut
Fuzzy RetrievalO(n0.85) O(n) O(n) O(n0.85)O(n0.8) O(n) O(logn) O(n0.8)
Vorbereitung der Index-Suche 23
Die Lucene Index Datenstruktur
Lucene Index
Dokument
Feld
...
Term
...
...
...
Feld
.
...
Dokument
...
Vielen Dank für Ihre Aufmerksamkeit!