Die Volltextsuche unterstützt die Abfrageerweiterung (und insbesondere die Variante „blinde Abfrageerweiterung“). Dies ist in der Regel nützlich, wenn eine Suchphrase zu kurz ist, was oft bedeutet, dass der Benutzer auf implizites Wissen angewiesen ist, welches der Volltextsuch-Engine fehlt. So weiß ein Benutzer, der nach dem Begriff „database“ sucht, normalerweise, dass „MySQL“, „Oracle“, „DB2“ und „RDBMS“ Phrasen sind, die „database“ entsprechen und insofern ebenfalls zurückgegeben werden sollten. Dies nennt man implizites Wissen.
Die blinde Abfrageerweiterung (auch „automatisches
Relevanzfeedback“ genannt) wird durch Anhängen von
WITH QUERY EXPANSION
an die Suchphrase
aktiviert. Sie funktioniert, indem die Suche zweimal
durchgeführt wird, wobei die Suchphrase für die zweite Suche
der ursprünglichen Suchphrase entspricht, die mit einigen
wenigen Dokumenten aus der ersten Suche verkettet wurde. Wenn
also eines der Dokumente das Wort „database“ und
das Wort „MySQL“ enthält, findet die zweite Suche
Dokumente, die das Wort „MySQL“ enthalten – und
zwar auch dann, wenn „database“ gar nicht enthalten
ist. Das folgende Beispiel veranschaulicht diesen Unterschied:
mysql>SELECT * FROM articles
->WHERE MATCH (title,body) AGAINST ('database');
+----+-------------------+------------------------------------------+ | id | title | body | +----+-------------------+------------------------------------------+ | 5 | MySQL vs. YourSQL | In the following database comparison ... | | 1 | MySQL Tutorial | DBMS stands for DataBase ... | +----+-------------------+------------------------------------------+ 2 rows in set (0.00 sec) mysql>SELECT * FROM articles
->WHERE MATCH (title,body)
->AGAINST ('database' WITH QUERY EXPANSION);
+----+-------------------+------------------------------------------+ | id | title | body | +----+-------------------+------------------------------------------+ | 1 | MySQL Tutorial | DBMS stands for DataBase ... | | 5 | MySQL vs. YourSQL | In the following database comparison ... | | 3 | Optimizing MySQL | In this tutorial we will show ... | +----+-------------------+------------------------------------------+ 3 rows in set (0.00 sec)
Ein weiteres Beispiel könnte die Suche nach den Maigret-Büchern von Georges Simenon sein, wobei der Benutzer nicht genau weiß, wie sich „Maigret“ schreibt. Eine Suche nach „Megre and the reluctant witnesses“ findet ohne Abfrageerweiterung nur „Maigret and the Reluctant Witnesses“. Eine Suche mit Abfrageerweiterung findet im zweiten Durchlauf alle Bücher mit dem Wort „Maigret“.
Hinweis: Da die blinde Abfrageerweiterung sehr viele irrelevante Dokumente zurückgibt, ist sie nur sinnvoll, wenn die Suchphrase sehr kurz ist.
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.