Database Reference
In-Depth Information
CREATE INDEX movies _ actors _ actor _ id ON movies _ actors (actor _ id);
CREATE INDEX movies _ genres _ cube ON movies USING gist (genre);
Sie können die zum Buch passende Datei movies _ data.sql herunterladen,
um die Tabellen mit Leben zu füllen. Alle Fragen zum genre cube behandeln
wir im Verlauf dieses Tages.
Unscharfe Suche
Ein System für die Textsuche zu öffnen, bedeutet, sich für ungenaue Einga-
ben zu öffnen. Sie müssen mit Tippfehlern wie „Franksteins Braut“ rechnen.
Manchmal können sich die Benutzer nicht an den vollständigen Namen von
„J. Roberts“ erinnern. In anderen Fällen können wir uns einfach nicht dar-
an erinnern, wie man „Benn Aflek“ richtig schreibt. Wir wollen uns einige
PostgreSQL-Pakete ansehen, die die Textsuche vereinfachen. Und je weiter
wir einsteigen, desto mehr verschwimmen bei diesem String-Matching die
Grenzen zwischen relationalen Queries und Such-Frameworks wie Lucene. 6
Auch wenn einige der Ansicht sind, dass Features wie die Volltextsuche in
den Anwendungscode gehören, kann es im Bezug auf Performance und Ad-
ministration vorteilhaft sein, diese Aufgaben der Datenbank zu überlassen,
wo die Daten liegen.
Standard-String-Matching bei SQL
PostgreSQL kann Texte auf vielerlei Weise durchsuchen, aber die beiden be-
kanntesten Standard-Methoden sind LIKE und Reguläre Ausdrücke.
LIKE und ILIKE
LIKE und ILIKE (Casesensitives LIKE ) sind die einfachsten Formen der Text-
suche und bei relationalen Datenbanken nahezu immer vorhanden. LIKE ver-
gleicht einen Spaltenwert mit einem gegebenen String-Muster, bei dem die
Zeichen % und _ Platzhalter (Wildcards) sind. % steht dabei für eine beliebi-
ge Zahl von Zeichen, während _ für genau ein Zeichen steht.
SELECT title FROM movies WHERE title ILIKE 'stardust%' ;
title
-------------------
Stardust
Stardust Memories
Soll der Teilstring stardust nicht das Ende des Strings sein, können Sie den
Unterstrich (_) als kleinen Trick verwenden.
6. http://lucene.apache.org/
Search WWH ::




Custom Search