Heim > Datenbank > MySQL-Tutorial > Hauptteil

Einführung in die Volltextsuche in MySQL

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

Grundlegendes zur Volltextsuche

Nicht alle Engines unterstützen die Volltextsuche Wie in Kapitel 21 erwähnt, unterstützt MySQL mehrere grundlegende Datenbank-Engines. Nicht alle Suchmaschinen unterstützen die in diesem Buch beschriebene Volltextsuche. Die beiden am häufigsten verwendeten Engines sind MyISAM und InnoDB. Erstere unterstützt die Volltextsuche, letztere nicht. Aus diesem Grund verwenden die meisten in diesem Buch erstellten Beispieltabellen zwar InnoDB, eine Beispieltabelle (die Tabelle „productnotes“) verwendet jedoch MyISAM. Dies sollten Sie berücksichtigen, wenn Ihre Anwendung eine Volltextsuchfunktion erfordert.

LIKE-Schlüsselwort, das Text (und Textteile) mithilfe von Platzhalteroperatoren abgleicht. Mit LIKE können Sie Zeilen finden, die Sonderwerte oder Teilwerte enthalten, unabhängig davon, wo sie sich innerhalb der Spalte befinden.

Eine weitere Einführung in die Verwendung textbasierter Suchen als regulärer Ausdruck zum Abgleichen von Spaltenwerten. Mithilfe regulärer Ausdrücke können Sie sehr komplexe Vergleichsmuster schreiben, die die erforderlichen Zeilen finden.

Obwohl diese Suchmechanismen sehr nützlich sind, gibt es einige wichtige Einschränkungen.

1. Leistung – Beim Abgleich mit Platzhaltern und regulären Ausdrücken muss MySQL normalerweise versuchen, alle Zeilen in der Tabelle abzugleichen (und bei diesen Suchvorgängen werden selten Tabellenindizes verwendet). Daher können diese Suchvorgänge sehr zeitaufwändig sein, da die Anzahl der durchsuchten Zeilen zunimmt.

2. Explizite Kontrolle – Bei Platzhaltern und dem Abgleich regulärer Ausdrücke ist es schwierig (und nicht immer möglich), explizit zu steuern, was abgeglichen wird und was nicht. Geben Sie beispielsweise an, dass ein Wort übereinstimmen muss, ein Wort nicht übereinstimmen darf und ein Wort nur dann übereinstimmen oder nicht übereinstimmen kann, wenn das erste Wort übereinstimmt.

3. Intelligente Ergebnisse – Obwohl Platzhalter- und reguläre Ausdruckssuchen sehr flexible Suchvorgänge bieten, bietet keine von beiden eine intelligente Möglichkeit, Ergebnisse auszuwählen. Beispielsweise werden bei einer Suche nach einem bestimmten Wort alle Zeilen zurückgegeben, die dieses Wort enthalten, ohne zwischen Zeilen mit einer einzelnen Übereinstimmung und Zeilen mit mehreren Übereinstimmungen zu unterscheiden (wobei die Reihenfolge der beiden wahrscheinlich besser ist). Ebenso werden bei einer Suche nach einem bestimmten Wort keine Zeilen gefunden, die dieses Wort nicht, aber andere verwandte Wörter enthalten.

All diese und weitere Einschränkungen können mit der Volltextsuche gelöst werden. Bei Verwendung der Volltextsuche muss MySQL nicht jede Zeile einzeln betrachten und nicht jedes Wort einzeln analysieren und verarbeiten. MySQL erstellt einen Index für jedes Wort in der angegebenen Spalte, und nach diesen Wörtern können Suchvorgänge durchgeführt werden. Auf diese Weise kann MySQL schnell und effizient entscheiden, welche Wörter übereinstimmen (welche Zeilen sie enthalten), welche Wörter nicht übereinstimmen, wie oft sie übereinstimmen und so weiter.

Das obige ist der detaillierte Inhalt vonEinführung in die Volltextsuche 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!