Selbstbau

Wie suche ich richtig?

Mit der neuen Forensoftware wurde die Haltung der Daten auf die SQL-Datenbank MySQL umgestellt. MySQL ist eine mächtige und schnelle Datenbank, die zudem auch noch als free software/open source GNU General Public License Version, auch bekannt unter "GPL", angeboten wird, d.h. die Software ist vollständig kostenlos und frei von Lizenzgebühren. Die Bedienung dieser Software erfordert tiefgreifende Kenntnisse in der sog. "Structured Query Language" ("SQL"), eine umfangreiche, standardisierte Sprache für die Pflege und Verwaltung der Daten in Form von Tabellen.

Da einem Normalanwender die Anwendung dieser Sprache nicht zuzumuten ist, besitzt auch diese Forensoftware eine einfache und nahezu selbsterklärende Schnittstelle, wie man in den einzelnen Datensätzen (hier: Beiträge) suchen und erfolgreich finden kann. Dieses Dokument soll dem Anwender aufzeigen, mit welchen syntaktischen Möglichkeiten er welche Suchresultate erzielt.

Die Eingabe eines Suchbegriffs geschieht über ein simples INPUT-Feld links oben im Forumsbereich. Mit dem Knopf "Suchen!" wird die Suche aktiviert und anschließend werden die passenden Beiträge aufgelistet - in einem vertrauten Format in Anlehnung an eine bekannte Suchmaschine...

Grundsätzlich gilt:
*NEU*
Im Gegensatz zur "alten" Suche wird der eingegebene Suchbegriff auch als Teil eines Wortes gefunden, d.h. es werden nicht nur die Beiträge aufgelistet, in denen der Suchbegriff als vollständiges Wort auftaucht, sondern auch diejenigen, in denen der Suchbegriff nur einem Teil eines Wortes entspricht.

Dazu ein Beispiel:

Wir suchen Beiträge über das "Alba Resort" und geben zunächst nur



als Suchbegriff ein. Selbstverständlich werden alle Beiträge gefunden, die irgendwo das Wort "Alba" beinhalten (wichtig: Gross/Kleinschreibung wird ja ignoriert), also auch die Beiträge über das Alba Resort. Aber es werden noch viel mehr Beiträge gefunden - so wird beispielsweise auch ein Beitrag angezeigt, der von der europäischen Zentralbank handelt - denn "alba" ist ein Bestandteil des Wortes "Zentralbank". Das stört uns und wir fragen uns, wie wir vermeiden können, daß auch die Beiträge über die Zentralbank angezeigt werden? Indem man eine Leerstelle vor den Suchbegriff einfügt - aber halt: wie oben bereits ausgeführt wurde, werden führende Leezeichen ja ignoriert. Für dieses Dilemma gibt es einen Spezialfall:

Wenn der Suchbegriff in Anführungszeichen gestellt wird, dann werden innerhalb der Anführungszeichen die Leerzeichen nicht ignoriert.

Also, wir geben einen besseren Suchbegriff ein:



Der Erfolg läßt nicht lange auf sich warten - die "Zentralbank" befindet sich nicht mehr unter den Treffern. Aber leider reicht es immer noch nicht aus: jetzt (und vorher eigentlich auch schon, nur wurde das nicht behandelt) findet die Suche leider immer noch Beiträge, die nichts mit dem eigentlichen Anliegen gemein haben - nämlich in einem Beitrag ist von "Albaniern" die Rede und der wird natürlich prompt auch gefunden. Das ist jetzt aber kein Problem mehr, nun braucht man nur noch hinten auch noch ein Leerzeichen einzufügen und dann verschwindet auch der Beitrag über die Albanier:



Jetzt ist die Suche eindeutig geworden, nun werden nur noch Beiträge aufgelistet, die irgendwo das Wort "alba" stehen haben - und zwar als ganzes Wort.

Nun ist es aber so, daß möglichweise immer noch zuviele Beiträge gefunden werden, denn eigentlich suchen wir ja nach dem "Alba Resort" und nicht nur nach "Alba". Nun, geben wir einfach den gesamten Text als Suchmuster ein - und fangen erst einmal ohne Anführungszeichen an:



Wir haben nun darauf geachtet, die Begriffe beide gross zu schreiben - aber das ist egal. Genauso gut hätte man:



eingeben können - das Resultat wäre das gleiche. Aber, was fällt auf: "resor" ist falsch geschrieben - da fehlt ein "t" am Ende. Aber, nach dem bisher gesagten ist das egal - denn es werden ja auch die Beiträge angezeigt, wo der Suchbegriff auch als Teil des Wortes vorkommt - und "alba resor" ist ein Teil von "Alba Resort". Die Suche findet tatsächlich auch alle Beiträge über das Alba Resort - aber sie findet noch viel mehr. U.a. findet sie schon wieder den Beitrag über die europäische Zentralbank - wie geht das, was ist denn mit dem "resor"? Nun, in dem Beitrag über die Zentralbank steht genau: "der Tresor der europäischen Zentralbank wurde geplündert" - wieso wird der angezeigt?

Weil wir keine Anführungszeichen benutzt haben. Wenn in einem Suchbegriff zwei (oder mehr) Wörter angegeben werden (durch Leerzeichen getrennt), dann wird nicht der Suchbegriff als ganzes gesucht, sondern es werden alle Beiträge angezeigt, in dem alle Einzelbegriffe vorkommen. Die Reihenfolge spielt dabei keine Rolle und es ist erneut unwichtig, ob die Wörter als ganzes oder nur in Teilen gefunden werden. Sie brauchen auch nicht, wie im Suchbegriff selbst, direkt hintereinander zu stehen, sondern irgendwo im Beitrag reicht aus. Mehr noch: da ja sowohl der Betreff als auch der Beitrag selbst durchsucht werden, reicht es aus, wenn das eine Wort im Betreff und das andere im Beitrag gefunden wird. Oder beides im Betreff. Oder beides im Beitrag. Hätten wir die Suchbegriffe in einer anderen Reihenfolge geschrieben, so hätte das im Ergebnis nichts geändert. Also:



Die Suche nach diesen Begriffen hat exakt die gleiche Wirkung wie die Suche anders herum! Das nennt man eine "Verknüpfung" der Suche, es wird sowohl der eine wie der andere Begriff gesucht - und nur Beiträge, die beide Begriffe enthalten, werden gefunden. Das ist ein mächtiges Werkzeug, denn man kann das beliebig fortsetzen und immer mehr Wörter angeben und die Suche damit sehr aufwändig gestalten - aber auch immer mehr einschränken, denn klar ist, daß die Anzahl Treffer immer kleiner wird, je mehr Wörter wir eingeben. In unserem speziellen Fall stört uns nun weiterhin, daß die Zentralbank immer noch auftaucht.

Das ist aber nun einfach gelöst: erst einmal korrigieren wir den Begriff und geben



ein. Da der "Tresor" ohne "t" am Ende geschrieben wird, verschwindet dieser Treffer nun - dachten wir. Leider stellen wir fest, daß der Schreiber des Beitrags auch schreibt, daß die Mitglieder der Zentralbank sich in einem geschlossenen "Resort" getroffen haben - leider nicht im Alba Resort und deswegen interessiert uns dieser Beitrag eigentlich immer noch nicht. Wie wir aber vorher schon gelernt haben, besitzen Anführungszeichen eine besondere Funktion: sie sorgen dafür, daß der "eingeschlossene" Begriff als ganzes gesucht wird, und nicht führende/hängende Leerzeichen abgeknabbert werden, und (neu) es werden auch mehrere Wörter nicht einzeln gesucht, sondern als ganzer Begriff:



Jetzt tauchen endlich nur noch Beiträge über das Alba Resort auf - wie gewünscht. Nicht funkioniert hätte übrigens jetzt:



denn nun spielt die Reihenfolge selbstverständlich eine Rolle, da der Begriff als ganzes gesucht wird. Ganz aufmerksame werden nun anmerken, daß wir bei der Suche trotz aller Sorgfalt auch Glück hatten - denn einen Beitrag über die "Schwalba Resorts" hätte die Suche auch gefunden - aber glücklicherweise gibt es keine "Schwalba Resorts" und schon gar keine Beiträge darüber. Und wenn - dann gibt man eben:



als Suchmuster ein und dann ist es wirklich perfekt - und doch ein wenig zuviel des Guten: denn jetzt kann es passieren, daß ausgerechnet der Beitrag, nachdem wir wirklich suchen, nicht gefunden wird, weil dort leider ein Punkt folgt statt eines Leerzeichens: ".. waren im Alba Resort.". Deswegen ist es nicht immer besser, die Suche so exakt wie möglich einzugeben - man schränkt evtl. die Treffer zu sehr ein.

Jede Variante der oben gezeigten Suchmuster hat ihre Daseinsberechtigung - und auch wenn 99% aller Suchen nur schlichten Begriffen gelten, so ist es mir wichtig, mit diesem Text aufzuzeigen, welche Möglichkeiten zur Verfügung stehen. Denn manchmal braucht man es dann doch - weil man mit simpler Einwortsuche nicht so richtig ans Ziel kommt.

Eines hat die Suche aber in allen Varianten gemeinsam - und das ist der Verdienst der MySQL-Programmierer: sie ist rasend schnell! Wer sich dafür interessiert: bei jeder Suche wird oben rechts die Anzahl der Treffer und die benötigte Suchzeit angezeigt. Wenn man bedenkt, daß oft zigtausende Beiträge durchsucht werden, wird man über die dort angezeigte Dauer erstaunt sein. Da hängt natürlich auch mit der Gesamtbelastung des Webservers zusammen, aber insgesamt ist die Suche kaum langsamer als das Forum selbst - erstaunlich, wenn man sich vorzustellen versucht, was dort alles passiert.

Rainer Halstenbach, im Mai 2004