Heim > Datenbank > MySQL-Tutorial > Hauptteil

Tutorial zur booleschen Textsuche in MySQL

巴扎黑
Freigeben: 2017-05-12 14:18:50
Original
1798 Leute haben es durchsucht

MySQL unterstützt eine andere Form der Volltextsuche, den sogenannten booleschen Modus. Auf boolesche Weise können Details bereitgestellt werden über:

Das auszuschließende Wort; , auch wenn es andere angegebene Wörter enthält);

2. Anordnungstipps (bestimmte Wörter als wichtiger als andere angeben, wobei wichtigere Wörter höher eingestuft werden); 🎜>

4. Einige andere Inhalte.

Auch ohne FULLTEXT-Index verwendbar Der boolesche Ansatz unterscheidet sich von der bisher verwendeten Volltextsuchsyntax dadurch, dass er auch dann verwendet werden kann, wenn kein FULLTEXT-Index definiert ist. Dies ist jedoch ein sehr langsamer Vorgang (seine Leistung nimmt mit zunehmender Datenmenge ab).

Um die Funktion von IN BOOLEAN MODE zu demonstrieren, geben Sie ein einfaches Beispiel:

Eingabe:

Ausgabe:

select note_text from productnotes where match(note_text) against('anvils' in boolean mode);
Nach dem Login kopieren

Analyse: Diese Volltextsuche ruft alle Zeilen ab (es gibt zwei Zeilen), die das Wort „heavy“ enthalten. Das Schlüsselwort IN BOOLEAN MODE wird verwendet, es wird jedoch tatsächlich kein boolescher Operator angegeben, sodass das Ergebnis dasselbe ist, als ob kein boolescher Modus angegeben wäre.

Unterschied im Verhalten von IN BOOLEAN MODE Obwohl die Ergebnisse dieses Beispiels die gleichen sind wie ohne IN BOOLEAN MODE, gibt es einen wichtigen Unterschied im Verhalten (auch wenn er in diesem speziellen Beispiel nicht gezeigt wird). Tutorial zur booleschen Textsuche in MySQL

Um Zeilen zu finden, die „heavy“, aber keine Wörter enthalten, die mit „rope“ beginnen, verwenden Sie die folgende Abfrage:

Eingabe:

Ausgabe:

select note_text from productnotes where match(note_text) against('heavy -rope' in boolean mode);
Nach dem Login kopieren

Analyse: Diesmal wird nur eine Zeile zurückgegeben. Diesmal wird immer noch das Wort „heavy“ gefunden, aber „-rope*“ weist MySQL ausdrücklich an, Zeilen auszuschließen, die „rope*“ enthalten (jedes Wort, das mit „rope“ beginnt, einschließlich „ropes“), weshalb die erste Zeile im vorherigen Beispiel ausgeschlossen wurde.

Codeänderungen in MySQL 4.x erforderlich. Wenn Sie MySQL 4.x verwenden, gibt das obige Beispiel möglicherweise keine Zeilen zurück. Dies ist ein Fehler in der Handhabung des *-Operators. Um dieses Beispiel mit MySQL 4.x zu verwenden, verwenden Sie -ropes anstelle von -rope* (um Ropes auszuschließen, anstatt jedes Wort auszuschließen, das mit Rope beginnt). Tutorial zur booleschen Textsuche in MySQL

Wir haben zwei boolesche Operatoren für die Volltextsuche gesehen – und * , –, die ein Wort ausschließen, während * der Kürzungsoperator ist (stellen Sie sich das als Platzhalter für das Ende eines Wortes vor). In der folgenden Tabelle sind alle unterstützten booleschen Operatoren aufgeführt.

Hier sind einige Beispiele für die Verwendung bestimmter Operatoren:

Eingabe: Tutorial zur booleschen Textsuche in MySQL

Analyse: Diese Suche entspricht Zeilen mit den Wörtern Kaninchen und Köder.

Eingabe:

select note_text from productnotes where match(note_text) against('+rabbit +bait' in boolean mode);
Nach dem Login kopieren

Analyse: Ohne Angabe eines Operators werden bei dieser Suche Zeilen gefunden, die mindestens eines der Wörter „Kaninchen“ und „Köder“ enthalten.

Eingabe:

select note_text from productnotes where match(note_text) agains('rabbit bait' in boolean mode);
Nach dem Login kopieren

Analyse: Diese Suche entspricht dem Ausdruck „Kaninchenköder“ anstelle der beiden Wörter „Kaninchen“ und „Köder“.

Eingabe:

select note_text from productnotes where match(note_text) agains('"rabbit bait"' in boolean mode);
Nach dem Login kopieren

Analyse: Ordnen Sie Kaninchen und Karotte zu, erhöhen Sie die Menge der ersteren und verringern Sie die Menge der letzteren.

Eingabe:

select note_text from productnotes where match(note_text) agains(&#39;>rabbit <bcarrot&#39; in boolean mode);
Nach dem Login kopieren

Analyse: Diese Suche entspricht den Wörtern „sicher“ und „kombination“, wodurch der Rang des letzteren herabgesetzt wird.

Ohne Sortierung anordnen Im booleschen Modus werden die zurückgegebenen Zeilen nicht in absteigender Reihenfolge nach Rangwert sortiert.

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!