MySQL 4.x und höher bieten Unterstützung für die Volltextsuche im MATCH ... AGAINST-Modus (ohne Berücksichtigung der Groß-/Kleinschreibung) Der Speicher-Engine-Typ der Tabelle, für die der Volltextindex erstellt wird, muss MyISAM sein. Das Problem besteht darin, dass „Match Against“ die chinesische Fuzzy-Suche nicht besonders gut unterstützt. Erstellen Sie eine neue UTF-8-MyISAM-Tabelle und einen Volltextindex: CREATE TABLE-Artikel ( id INT UNSIGNED AUTO_INCREMENT NICHT NULL PRIMARY KEY, Titel VARCHAR(200), Textkörper, VOLLTEXT (Titel, Text) ) ENGINE=MyISAM DEFAULT > FULLTEXT(title, body) erstellt einen Volltextindex für die Spalten „title“ und „body“. Geben Sie bei einer späteren Suche unbedingt beide Spalten an. Fügen Sie dieser Tabelle einige Testdaten hinzu INSERT INTO Artikel (Titel, Text) Werte ('MySQL-Tutorial', 'DBMS steht für DataBase ...'), ('So verwenden Sie MySQL richtig','Nachdem Sie durch ... gegangen sind'), ('MySQL optimieren','In diesem Tutorial zeigen wir ...'), ('1001 MySQL-Tricks','1. Führen Sie mysqld niemals als Root aus. 2. ...'), ('MySQL vs. YourSQL','Im folgenden Datenbankvergleich ...'), ('MySQL-Sicherheit', 'Bei richtiger Konfiguration funktioniert MySQL ...'); Volltextsuchtest SELECT * FROM articles WHERE MATCH (Titel, Text) AGAINST ('Datenbank'); Beachten Sie, dass die Werte in MATCH (Titel, Text) die beiden Felder sein müssen, für die der Volltextindex erstellt wurde. Die Standardzeichenlänge, die MySQL für die Volltextsuche unterstützt, beträgt 4. Sie können SHOW VARIABLES LIKE 'ft_min_word_len' verwenden, um die angegebene Zeichenlänge anzuzeigen. Sie können die Mindestzeichenlänge auch in der MySQL-Konfigurationsdatei my.ini ändern, indem Sie eine Zeile zu my.ini hinzufügen, beispielsweise: ft_min_word_len = 2. Starten Sie MySQL nach der Änderung neu. Darüber hinaus berechnet MySQL auch die Gewichtung eines Wortes, um zu bestimmen, ob es im Ergebnissatz erscheint, und zwar wie folgt: MySQL berechnet zunächst die Gewichtung jedes entsprechenden Wortes im Satz und in der Abfrage. Ein Wort, das in mehreren Dokumenten vorkommt, hat eine geringere Gewichtung (möglicherweise sogar eine Gewichtung von null), da es in diesem bestimmten Satz einen niedrigeren semantischen Wert hat. Andernfalls wird das Wort höher gewichtet, wenn es weniger Wörter gibt. Der Standardschwellenwert von MySQL beträgt 50 %. Im obigen Beispiel kommt „you“ in jedem Dokument vor, also beträgt der Wert 100 %. Nur Wörter unter 50 % werden im Ergebnissatz erscheinen. Volltextsuchsyntax SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple -banana' IM BOOLEAN-MODUS); Zeigt „UND“ an, was bedeutet, dass es eingeschlossen werden muss. - bedeutet NICHT, also nicht enthalten. SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('apple banana' IN BOOLEAN MODE); Zwischen Apfel und Banane steht ein Leerzeichen, das ODER bedeutet, d. h., es ist mindestens eines der beiden Elemente Apfel und Banane enthalten. SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple banana' IN BOOLEAN MODE); Äpfel müssen enthalten sein, aber wenn auch Bananen enthalten sind, wird ihnen ein höheres Gewicht beigemessen. SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple ~banana' IM BOOLEAN-MODUS); ~ ist der bekannte Exklusiv-Oder-Operator. Die zurückgegebenen Datensätze müssen Äpfel enthalten. Wenn sie aber auch Bananen enthalten, wird das Gewicht reduziert. Es ist jedoch nicht so streng wie +apple -banana, da letzteres nichts zurückgibt, wenn es „banana“ enthält. SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple +(>banana <orange)' IN BOOLEAN MODE); Gibt Datensätze zurück, die sowohl Apfel als auch Banane oder sowohl Apfel als auch Orange enthalten. Allerdings ist das Gewicht des Datensatzes, der sowohl Apfel als auch Banane enthält, höher als das des Datensatzes, der sowohl Apfel als auch Orange enthält. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Einige Erfahrung im Aufbau des React Native-Projektframeworks
>>: Perfekte Lösung für keine rc.local-Datei in Linux
Inhaltsverzeichnis 1. Einleitung 2. Gedankenanaly...
Version 1.4.2 Offizielle Dokumentation Dockerhub ...
Die Beschreibung von echo im Linux-Hilfedokument ...
Zunächst stellt sich häufig die Frage: Welche Bez...
Was ist eine Tabelle? Es besteht aus Zellenzellen...
Vorwort Um die Konsistenz und Integrität der Date...
In diesem Artikel wird hauptsächlich die Implemen...
Lassen Sie mich zunächst die Bedeutung einiger Fe...
Verwenden des UNION-Operators Union : Wird verwen...
Hinweis: Sie müssen dem übergeordneten Container ...
In diesem Artikel wird der spezifische Code für J...
Inhaltsverzeichnis Text LOCK-Parameter ALGORITHMU...
Nach der Veröffentlichung von CentOS8.0-1905 habe...
Drei Modi Bridged (Bridge-Modus), NAT (Network Ad...
Inhaltsverzeichnis 1. Was ist eine Veranstaltung?...