Postgres Tsearch2 und Indexe
Basics Dokumente = alle Textattribute, Kombinationen von Textattributen über mehrere Tabellen Native Textsearch Operatoren: ~, ~*, LIKE, ILIKE keine linguistischen Besonderheiten (satisfy, satisfied), kein Ranking, langsam
Indexe wenige Datensätze aus sehr vielen verschiedenen Datensätzen zu extrahieren (Telefonbuchbsp.) sinnvoller Einsatz notwendig – Aufwand/Nutzen B+-Baum, R-Baum, Hash-Indizes, Gist, Gin
B+ Baum Standardtyp High-Concurrency optimiert (viele gleichzeitige Nutzer) Bsp. [ ] ges.: – Mittelwert > – Mittelwert < … – 2 Suchschritte = 25% übrig – Anzahl der Suchschritte = Logarithmus dualis der Datenmenge
R Baum Gist Anpassung an Geometrische Phänomene Stichwort: Bounding Boxes im Baum nach Größe geordnet sind sie Geometrien unabhängig voneinander eine Ebene im Baum Gist
Hashindizes Hash Indices speichern Datensätze in einem Hash in Postgres nicht relevant, schlecht unterstützt und somit langsamer
GIN relativ neu meist im Kontext von Tsearch statische Texte enthalten oft häufig wiederkehrende Worte tauchen nur einmal im Index auf – inkl. Verweise auf die darunter liegende Tabelle in Spezialfall sehr mächtig