Heim  >  Artikel  >  Datenbank  >  Tutorial zur MySQL-Abfrageerweiterungstechnologie

Tutorial zur MySQL-Abfrageerweiterungstechnologie

巴扎黑
巴扎黑Original
2017-05-12 14:18:441159Durchsuche

Die Abfrageerweiterung wird verwendet, um den Umfang der zurückgegebenen Volltextsuchergebnisse zu erweitern. Betrachten Sie die folgende Situation. Sie möchten alle Kommentare finden, in denen Ambosse erwähnt werden. Nur ein Kommentar enthält das Wort anvils , Sie möchten aber auch alle anderen Zeilen finden, die für Ihre Suche relevant sein könnten, auch wenn sie nicht anvils enthalten.

Dies ist auch eine Aufgabe der Abfrageerweiterung. Bei Verwendung der Abfrageerweiterung führt MySQL zwei Scans der Daten und des Index durch, um die Suche abzuschließen:

1. Führen Sie zunächst eine einfache Volltextsuche durch, um alle Zeilen zu finden, die den Suchkriterien entsprechen 🎜>2. Zweitens prüft MySQL diese übereinstimmenden Zeilen und wählt alle nützlichen Wörter aus (wir erklären kurz, wie MySQL bestimmt, was nützlich ist und was nicht).

3. Als nächstes führt MySQL erneut eine Volltextsuche durch, diesmal nicht nur unter Verwendung der ursprünglichen Bedingungen, sondern auch unter Verwendung aller nützlichen Wörter.

Verwenden Sie die Abfrageerweiterung, um Ergebnisse zu finden, die möglicherweise relevant sind, auch wenn sie nicht den genauen Begriff enthalten, nach dem Sie suchen.

Nur in MySQL-Version 4.1.1 oder höher verfügbar. Die Abfrageerweiterungsfunktion wurde in MySQL 4.1.1 eingeführt und kann daher in früheren Versionen nicht verwendet werden.

Hier ist ein Beispiel: Führen Sie zunächst eine einfache Volltextsuche ohne Abfrageerweiterung durch:

Eingabe:

Ausgabe:
select note_text from productnotes where match(note_text) against('anvils');

Tutorial zur MySQL-AbfrageerweiterungstechnologieAnalyse: Nur eine Zeile enthält das Wort Ambosse, daher wird nur eine Zeile zurückgegeben.

Hier ist die gleiche Suche, dieses Mal mit Abfrageerweiterung:

Eingabe:

Ausgabe:
select note_text from productnotes where match(note_text) against('anvils' with query expansion);

Tutorial zur MySQL-AbfrageerweiterungstechnologieAnalyse: Diesmal wurden 7 Zeilen zurückgegeben. Die erste Zeile enthält das Wort Amboss und hat daher den höchsten Rang. Die zweite Zeile hat nichts mit anvils zu tun, aber da sie zwei Wörter aus der ersten Zeile (customer und Recommend) enthält, wird sie ebenfalls abgerufen. Zeile 3 enthält ebenfalls dieselben beiden Wörter, sie stehen jedoch weiter hinten und weiter voneinander entfernt im Text, sodass diese Zeile ebenfalls enthalten ist, jedoch mit einem dritten Rang. Auch die dritte Zeile bezieht sich nicht auf Ambosse (mit ihrem Produktnamen).

Wie Sie sehen, erhöht die Abfrageerweiterung die Anzahl der zurückgegebenen Zeilen erheblich, aber dadurch erhöht sich auch die Anzahl der Zeilen, die Sie eigentlich nicht möchten.

Je mehr Zeilen, desto besser. Je mehr Zeilen in einer Tabelle (je mehr Text in diesen Zeilen) sind, desto besser sind die Ergebnisse, die bei der Abfrageerweiterung zurückgegeben werden.

Das obige ist der detaillierte Inhalt vonTutorial zur MySQL-Abfrageerweiterungstechnologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn