Prinzip der PHP-Suchfunktion
Die Idee der PHP-Suchfunktion (Wortsegmentierung + Matching)
1. Die einfachste Suche (mit Like-Anweisungsmatching)
Diese Suche kann nur für die Einzelwortsuche verwendet werden
Zum Beispiel: Benutzer-Spitznamensuche, Gruppennamensuche usw.
Empfohlen: „PHP-Tutorial“
2.
Diese Methode kann zum Durchsuchen von Datensegmenten verwendet werden, z. B. zum Abrufen von Artikelinhaltstiteln usw.
Prinzip:
Verwenden Sie die Volltextsuche mit MySQL
Implementierungsschritte
1. Voraussetzungen für die Verwendung des MySQL-Volltextabrufs:
Der Tabellentyp muss MyISAM sein (Innodb kann auch nach MySQL5.6 verwendet werden)
Der Feldtyp zum Einrichten der Volltextsuche muss char, varchar, text sein
2. Richten Sie die erweiterte Konfiguration für die Volltextsuche ein (konfigurieren Sie MySQL)
Da die Länge der indizierten Wörter in MySQL standardmäßig 4 beträgt, können Sie chinesische Wörter unterstützen Dies muss zuerst geändert werden.
*Unix-Benutzer müssen my.cnf ändern. Im Allgemeinen befindet sich diese Datei in /etc/my.cnf. Wenn sie nicht gefunden wird, suchen Sie zuerst nach „find / -name“ „my.cnf“. 🎜>
Fügen Sie an der [mysqld]-Position hinzu:ft_min_word_len = 2
ft_min_word_len ist die Mindestlänge der dem Index hinzugefügten Wörter Der Standardwert ist 4. Um chinesische Schriftzeichen zu unterstützen, wird er in 2 geändert
3. Erstellen Sie eine Volltextsuche (fügen Sie einen Index zur Tabelle hinzu)
Verwenden Sie das Schlüsselwort FullText, um Felder beim Erstellen einer Tabelle zu identifizieren, und verwenden Sie ALTER TABLE (oder CREATE INDEX), um einen Index für eine vorhandene Tabelle zu erstellenCREATE fulltext INDEX index_name ON table_name(colum_name);
4. Verwenden Sie die Volltextsuche (SQL-Anweisung).
Verwenden Sie die MATCH-Funktion in der WHERE-Klausel von SELECT Gesamtsyntax: MATCH(col1,col2,…) AGAINST (expr[search_modifier]). Der Inhalt in MATCH ist die Spalte, in der der FULLTEXT-Index erstellt wurde und die Daten gefunden werden sollen Der Ausdruck in AGAINST ist der Textinhalt, der gefunden werden soll, und search_modifier ist optional. Die möglichen Werte von search_modifier sind:IN NATURAL LANGUAGEMODE、IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION、IN BOOLEAN MODE、WITH QUERY EXPANSION。
SELECT * FROM articles WHERE MATCH (tags) AGAINST ('旅游' IN BOOLEAN MODE);
Das obige ist der detaillierte Inhalt vonPrinzip der PHP-Suchfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!