MySQL verfügt über einen eingebauten Parser, der nach Voreinstellung für Volltextoperationen eingesetzt wird (Text parsen, der indiziert werden soll, oder einen Anfrage-String parsen, um die Suchbegriffe herauszufinden). In der Volltextverarbeitung bedeutet „Parsen“, dass Wörter aus einem Text oder Anfrage-String anhand von Regeln extrahiert werden, die definieren, aus welcher Zeichenfolge ein Wort besteht und wo die Wortgrenzen liegen.
Beim Parsen für Indizierungszwecke übergibt der Parser jedes Wort an den Server, und dieser fügt das Wort einem Volltextindex hinzu. Beim Parsen eines Anfrage-Strings übergibt der Parser ebenfalls jedes Wort an den Server, und dieser sammelt die Wörter, um sie für eine Suchoperation zusammenzustellen.
        Die Parsing-Eigenschaften des eingebauten Volltext-Parsers
        werden in Abschnitt 12.7, „MySQL-Volltextsuche“, beschrieben. Hierzu
        gehören auch die Regeln, nach denen Wörter aus einem Text
        herausgezogen werden. Der Parser wird von bestimmten
        Systemvariablen wie ft_min_word_len und
        ft_max_word_len beeinflusst, die kürzere
        oder längere Wörter ausschließen können, und durch die Liste
        der Stoppwörter (diese sind häufig vorkommende Wörter, die
        übergangen werden).
      
Durch die Plug-In-API sind Sie in der Lage, einen eigenen Volltext-Parser zu verwenden und somit die Grundaufgaben eines Parsers unter Kontrolle zu haben. Ein Parser-Plug-In kann zwei Rollen spielen:
Es kann den eingebauten Parser ersetzen. In dieser Rolle liest das Plug-In die zu parsende Eingabe, zerlegt sie in Wörter und übergibt diese Wörter an den Server (entweder zum Indizieren oder zum Sammeln von Wörtern).
Sie könnten einen Parser auf diese Weise einsetzen, wenn Sie die Eingabe nach anderen Regeln als der eingebaute Parser in Wörter zerlegen möchten. Für den eingebauten Parser besteht beispielsweise der Text „case-sensitive“ aus zwei Wörtern, nämlich „case“ und „sensitive“, während eine Anwendung diesen Text möglicherweise als ein einziges Wort ansehen sollte.
            Das Plug-In kann auch mit dem eingebauten Parser
            zusammenarbeiten, indem es als Frontend für diesen dient.
            In dieser Rolle extrahiert das Plug-In Text aus der Eingabe
            und übergibt ihn an den Parser, der seinerseits den Text
            nach seinen normalen Parsing-Regeln in Wörter zerlegt.
            Diese Art von Parsing wird besonders von den Systemvariablen
            ft_ und der
            Stoppwörterliste beeinflusst.
          xxx
            Auf diese Weise könnten Sie einen Parser einsetzen, wenn
            Sie beispielsweise PDF- oder XML-Dokumente oder
            .doc-Dateien indizieren müssen. Der
            eingebaute Parser ist nicht für diese Arten von Dokumenten
            gedacht, aber ein Plug-In-Parser kann Text aus diesen
            Quellen extrahieren und an den eingebauten Parser
            übergeben.
          
Ein Parser-Plug-In kann auch in beiden Rollen aktiv sein. Es kann Text aus einer Eingabe holen, die kein einfaches Textdokument ist (die Frontend-Rolle), und diesen Text auch in Wörter zerlegen (also den eingebauten Parser ersetzen).
        Ein Volltext-Plug-In ist mit Volltextindizes indexweise
        verbunden: Wenn Sie ein Parser-Plug-In installieren, wird es
        deswegen noch nicht für Volltextoperationen benutzt, sondern
        steht zunächst einmal nur zur Verfügung. Ein Volltext-Parser
        kann dann beispielsweise in einer WITH
        PARSER-Klausel bei der Erstellung einzelner
        FULLTEXT-Indizes angegeben werden. Um einen
        solchen Index gleichzeitig mit der Tabelle zu erstellen, tun Sie
        Folgendes:
      
CREATE TABLE t ( doc CHAR(255), FULLTEXT INDEX (doc) WITH PARSER my_parser );
Oder Sie fügen den Index nach der Erstellung der Tabelle hinzu:
ALTER TABLE t ADD FULLTEXT INDEX (doc) WITH PARSER my_parser;
        Um den Parser mit dem Index zu verbinden, müssen Sie lediglich
        die WITH PARSER-Klausel in die SQL-Anfrage
        einfügen. Suchoperationen werden wie immer formuliert, ohne die
        Anfragen in irgendeiner Weise zu ändern.
      
        Wenn Sie ein Parser-Plug-In mit einem
        FULLTEXT-Index verbinden, ist dieses Plug-In
        erforderlich, um den Index nutzen zu können. Wird es gelöscht,
        wird jeder mit ihm verbundene Index unbenutzbar. Jeder Versuch,
        ihn in einer Tabelle zu verwenden, für die kein Plug-In zur
        Verfügung steht, löst einen Fehler aus. Nur DROP
        TABLE ist nach wie vor möglich.
      
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

