2. Was ist eine Suchmaschine?
Dokumente Abfragen
2
Suchmaschine
n-index
3. Was ist ein Index?
T1
was ist los
3
T2
was ist das
T3
das ist ein fisch
Indexierung
das {(2, 3), (3, 1)}
ein {(3, 3)}
fisch {(3, 4)}
ist {(1, 2), (2, 2), (3, 2)}
was {(1, 1), (2, 1)}
Woran erinnert euch das? => DB
Was ist der wesentliche Unterschied zu Datenbanken?
Atomic
Consistent
Independent
Durable
Was davon hat auch eine Suchmaschine?
Keine Transaktionen bzw. nur halb, kein Rollback
Keine unmittelbare Konsistenz bei verteilten Systemen
Keine Relationen, also z.B. auch keine joins => Denormalisierung
Hohe Lesegeschwindigkeit
Schreiben ist teuer
Ranking
Optimierte unscharfe und Teilstringsuche
Dokumentenvorverarbeitung
Boolesche Abfragesprachen
Ist ein Suchmaschinenindex das Gleiche wie ein Datenbankindex?
B-Tree vs. Inverted Index
eine Liste der Wörter in allen Dokumenten
mit einem Verweis auf das dazugehörige Dokument und die lokale Position dort
welche Wörter sind wahrscheinlich später unwichtig, welche wichtig? => tf / idf
wozu braucht man die lokale Position der Wörter? Ranking (first-occ), Phrasensuche, Highlighting
Wieder Verwandtschaft zu Datenbanken: Abfragesprache hat eine mengentheoretische mathematische Entsprechung
Ist ein Dokument ein besserer Treffer als das andere?
Die beteiligten Mengen können riesig sein, deshalb werden sie teilweise nach Möglichkeit gecacht.
Solr Core speichert Dokumente, aufgeteilt auf Felder (z.B. eines für den Titel, eines für den Inhalt, eines für die Kategorie)
Besonderheit: dynamic fields
Analyzer: beschreiben die Behandlung des Feldes bei der Indexierung und der Query bei der Abfrage => muss zusammenpassen, z.B. lowercase, Umlautnormalisierung, Tokenisierung (untokenisiert vs. tokenisiert)
Für Autocomplete nur zwei Felder: Inhalt und Gewicht
Was lernen wir über das Feld „content“?
Inhaltsfeld ist untokenisiert, lowercase und mit normalisierten Umlauten