Suche für die MySQL-Tutorial

September 2

Die MySQL-Datenbank können Sie Natürlichsprachliche Suchvorgänge auf jedes Zeichenfeld durch Verwendung eines FULLTEXT Index durchführen. Eine Volltextsuche verwendet Stoppwörter (Wörter, die nicht, wie z. B. durchsucht werden, und, und), boolean sucht und Relevanz Ratings in Ergebnisse zurückgeben, die mehr genau entsprechen, was du suchst.

Die Grundlagen

Suche in natürlicher Sprache bedeutet, dass für die Phrase oder Wort gesucht wird, als ob es mit keine speziellen Operatoren gesprochen wurde. Für eine MySQL natürlichsprachliche Suche müssen die Suchzeichenfolgen vier bis 254 Zeichen und Wörter müssen durch ein Trennzeichen wie ein Leerzeichen, Komma oder Zeitraum getrennt werden. Der MySQL-Parser kann nicht Wörter ohne irgendeine Art von Trennzeichen getrennt werden. Der Parser entfernt alle Stoppwörter aus die Suchbegriffe (siehe Ressourcen für eine Liste von Wörtern). Die Stoppwörter werden nicht Teil der Suche und wenn es nur Stoppwörter in die Suche gibt keine Ergebnisse zurückgegeben.

Jede Zeile, daß Treffern die Suchparameter ist eine Bewertung der Relevanz und die Ergebnisse werden zurückgegeben, basierend auf das Rating, vom höchsten zum niedrigsten. Suchen, die mehr als fünfzig Prozent der Zeilen oder weniger als drei Zeilen mit Daten entsprechen werden nicht zurückgegeben. Dies ist die LIKE()-Funktion, die funktioniert wie ein regulärer Ausdruck für die exakte Zeichenfolge unabhängig von der Platzierung und die Häufigkeit des Auftretens der Suche viel unterschiedlich.

Die Syntax

Damit unterstützen die Volltext-Suche, muss die Tabelle mit einem Volltext-Index erstellt werden und die Spalten, die indiziert muss einen Charakter-Datentyp (CHAR, VARCHAR oder TEXT).

CREATE TABLE Artikel(Id INT(10) DEFAULT '0' AUTO_INCREMENT,Date_posted Datum,Kategorie INT(2),Titel VARCHAR(255) NOT NULL,Artikel-TEXT NOT NULL,PRIMARY KEY (Id),FOREIGN KEY (Kategorie),Volltext (Titel, Artikel))GEHEN

Um die Daten abzufragen, benutzen Sie eine SELECT-Anweisung wie:

SELECT Id, Titel von Artikeln in dem MATCH (Titel, Artikel) AGAINST('MySQL')GEHEN

Die Match-Klausel muss genau in der FULLTEXT-Index angegebenen Felder identisch sein.

Um verwenden eine boolesche Suche die Wörter "IN BOOLEAN MODE" nach der Suchzeichenfolge versehen.

SELECT Id, Titel FROM in dem Spiel (Titel, Artikel) gegen Artikel ('+ MySQL - PHP' IN BOOLEAN MODE)GEHEN

Diese Abfrage werden alle Artikel übereinstimmt, die die Zeichenfolge "MySQL" enthalten, aber nicht die Zeichenfolge "PHP." Eine vollständige Liste der booleschen Operatoren finden Sie unter Ressourcen, unten.