Heim > Artikel > Backend-Entwicklung > Prinzip der PHP-Suchfunktion
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 = 2Andere Attribute sind ft_wordlist_charset = gbkft_wordlist_file = /home/soft/mysql/share/mysql /wordlist-gbk.txtft_stopword_file = /home/soft/mysql/share/mysql/ stopwords-gbk.txtEine kleine Erklärung:ft_wordlist_charset repräsentiert das Zeichen Satz des Wörterbuchs. Derzeit sind die gut unterstützten (UTF-8, gbk, gb2312, big5) ft_wordlist_file ist eine Wortlistendatei. Jede Zeile enthält ein Wort und seine Worthäufigkeit (getrennt durch a Anzahl der Tabulatoren oder Leerzeichen, speziell zur Eliminierung) ft_stopword_file bedeutet, Wortlisten herauszufiltern, die nicht indiziert sind, eine pro Zeile.
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。Jeder Wert von search_modifier stellt eine Art der Volltextsuche dar, nämlich Volltextsuche in natürlicher Sprache und Volltextsuche in natürlicher Sprache mit Abfrageerweiterung, boolescher Volltextsuche, abfrageerweiterter Volltextsuche (Standardmäßig wird der MODUS „IN NATÜRLICHER SPRACHE“ verwendet).
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!