(PostgreSQL) Suche über mehrere Spalten und Tabellen
Jeena Paradies
- datenbank
Hallo,
Ich habe eine Datenbank (PostgreSQL) mit Restaurants:
restaurants
+----+-------------+---------+-----------+
| id | name | city | food_id | region_id |
+----+------+------+---------+-----------+
regions
+----+-----------+------+
| id | parent_id | name |
+----+-----------+------+
foods
+----+------+
| id | name |
+----+------+
Und ich habe eine Suche, die aus einem Textfeld besteht in das man alles reinscheiben können soll. Meine Frage ist nun wie ich es schaffe dass wenn jemand so etwas schreibt:
Arbutus London British
oder
London British Arbutus
oder wie auch immer sortiert, dann soll es das gleiche Restaurant finden. Und wenn man eines der Sachen weglässt soll es auch nichts machen, so dass wenn man nur London schreibt (Groß- und Kleinschreibung soll auch egal sein) dann soll man auch alle Restaurants aus London finden.
Ich habe es mit diesem LIKE '%search word%' versucht aber das geht ja nicht wirklich bei drei Wörtern.
Jeena
Hallo Jeena,
Und ich habe eine Suche, die aus einem Textfeld besteht in das man alles reinscheiben können soll. Meine Frage ist nun wie ich es schaffe dass wenn jemand so etwas schreibt:
Arbutus London British
London British Arbutus
Ich habe es mit diesem LIKE '%search word%' versucht aber das geht ja nicht wirklich bei drei Wörtern.
die Volltextsuche von PostgreSQL kann das - auch über mehrere Spalten und mehrere Tabellen. Es ist Deine Aufgabe, diese entsprechend zu konfigurieren.
Freundliche Grüße
Vinzenz
Hallo,
Danke für den Link, es funktioniert schon halb gut. Zumindest wenn ich das ganze Wort eingebe dann findet er das auch recht schön. Das Problem was ich noch habe, ich möchte wenn man "Lon" eingibt, dass er da alle findet bei denen ein Wort mit Lon anfängt oder sie bei city London drinn stehen haben. Und irgendwie kappiere ich mal überhaupt nicht was mit den weights auf sich hat. Da ist zwar ein Beispiel mit * aber wenn ich das so bei mir einbaue hilft das genau gar nichts.
Jeena