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 Vorwort 1. Ereignisse und Zwis...
Für viele inländische Werbetreibende ist die Erste...
Wenn Sie Ihren Hostnamen ändern möchten, können S...
Inhaltsverzeichnis Lastenausgleich Klassifizierun...
Inhaltsverzeichnis 1. Installationsvorbereitung 1...
Inhaltsverzeichnis 1. So erhalten Sie Elemente Ho...
Inhaltsverzeichnis Problembeschreibung Lösung Pro...
In diesem Artikel wird der spezifische Code für d...
So verwenden Sie den Code im NetEase-Blog: Melden...
Das Uniapp-Applet wird ein ähnliches Dropdown-Pro...
Inhaltsverzeichnis Projekthintergrund Start Erste...
Inhaltsverzeichnis Einführung Architektur Vorteil...
Hintergrund Die Menge neuer Daten in der Geschäft...
Ein Kollege bat mich, ihm dabei zu helfen, heraus...
1 Einleitung Ein guter Programmierer sollte über ...