foomaker: MySQL schnelle Suche / Suchbegriffe

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

--
Natürlich glaube ich an die Existenz von Ausserirdischen. Schliesslich gibt es ja auch das PERFEKTE SCRIPT.
  1. 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

    1. 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

      --
      Natürlich glaube ich an die Existenz von Ausserirdischen. Schliesslich gibt es ja auch das PERFEKTE SCRIPT.