MySQL schnelle Suche / Suchbegriffe
foomaker
- datenbank
Tach zusammen.
"Wartungsarbeiten" bei der selfhtml forumssuche. Deshalb hier meine Frage ohne vorangegangene Recherche im Forumsarchiv.
Ich habe ein Projekt übernommen, bei dem in einer MySQL-DB user zu angelegten Datensätzen in einem "Text"-Feld Suchbegriffe (max. 30) speichern können. Das bisherige "Suchformular"-Skript sucht per "...where suchbegriffe LIKE '%$suchwort%'".
Es geht um ca. 100000 Datensätze, Tendenz steigend.
Meine Fragen:
Ist dies die optimale Art, Suchbegriffe zu speichern?
Ist die beschriebene where-Klausel die optimale Suche?
Mein erste Idee ist, Suchbegriffe in einer separaten Tabelle nicht-redundant abzulegen und jeweils über eine "Verknüpfungstabelle" mit den betreffenden Datensätzen zu verknüpfen. Die Vorteile, wie ich sie mir vorstelle: a) Man kann nach mehreren Suchbegriffen "gleichzeitig" suchen
und b) Suchbegriffe wären nur noch varchar(?) und indizierbar.
Wie würdet Ihr so etwas anlegen?
Gruß vom foomaker
Ist dies die optimale Art, Suchbegriffe zu speichern?
nein, die optimale art ist eine n:m-beziehnungstabelle welche eine suchbegriff einem konkreten datensatz oder einer tabelle und datensatz zuordnet
komplexere systeme arbeiten sogar mit mehreren tabellen - eine wortliste die den suchbegriffen zugeordnet ist und die suchbegriffe sind wiederum datensätzen zugeordnet
so muss eine volltext-suche nur dann durchgeführt werden, wenn der suchbegriff noch nie gesucht wurde oder über einen längeren zeitraum nicht gesucht wurde
du brauchst also einerseits die "echte" suche die diese tabellen baut nud andereseits die schnellsuche, die nur diese liste nach suchbegriffen durchgräbt
in den meisten mir bekannten systemen heisst das ganze "wordmatch table" oder ähnliches
Mein erste Idee ist, Suchbegriffe in einer separaten Tabelle nicht-redundant abzulegen und jeweils über eine "Verknüpfungstabelle" mit den betreffenden Datensätzen zu verknüpfen. Die Vorteile, wie ich sie mir vorstelle: a) Man kann nach mehreren Suchbegriffen "gleichzeitig" suchen
und b) Suchbegriffe wären nur noch varchar(?) und indizierbar.
ich versteh zwar nicht, was du meinst - aber es hört sich nach der oben beschriebenen n:m-beziehung an
Hallo suit
ich versteh zwar nicht, was du meinst - aber es hört sich nach der oben beschriebenen n:m-beziehung an
Entschuldige meine unklare Beschreibung, aber Du hast richtig "gehört". Mir war leider der alles sagende Begriff "n:m"-Beziehung entfallen.
Vielen Dank für die Verstärkung.
Gruß, Carsten