Manchmal muss die Volltextsuchfunktion im Projekt verwendet werden. Wenn die Anzahl der Volltextsuchen relativ gering ist und Sie kein separates dediziertes Indexierungstool wie Elasticsearch erstellen möchten, können Sie dies in Betracht ziehen Die Volltextsuchfunktion, die mit MySQL geliefert wird.
MySQL 5.7.25 verfügt über eine Volltextsuchfunktion, was sehr praktisch ist.
Vor MySQL 5.7.6 unterstützte der Volltextindex nur den englischen Volltextindex und nicht den chinesischen Volltextindex. Es war notwendig, einen Wortsegmentierer zu verwenden, um die chinesischen Absätze vorzuverarbeiten und sie dann in Wörter aufzuteilen Speichern Sie sie in der Datenbank.
Ab MySQL 5.7.6 verfügt MySQL über einen integrierten Ngram-Volltextparser zur Unterstützung der chinesischen, japanischen und koreanischen Wortsegmentierung.
Die in diesem Artikel verwendete MySQL-Version ist 5.7.25, InnoDB-Datenbank-Engine.
CREATE TABLE `tbl_article_content` ( `id` bigint(40) NOT NULL AUTO_INCREMENT, `article_title` varchar(60) COMMENT '标题', `article_summary` varchar(120) COMMENT '摘要', `article_content` text NOT NULL COMMENT '内容', `article_id` bigint(40) NOT NULL COMMENT '对应文章ID', `create_date` datetime NOT NULL COMMENT '创建时间', `modified_date` datetime NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `artid` (`article_id`) USING BTREE, FULLTEXT KEY `article_content` (`article_content`) /*!50100 WITH PARSER `ngram` */ ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
/*!50100 */ Es bedeutet Version 5.01.00, nur ausgeführt
MIT PARSER „ngram“ ist die vorgesehene Wortsegmentierungs-Engine.
Wenn der Volltextindex beim Erstellen der Tabelle nicht hinzugefügt wird, können Sie ihn nach dem Erstellen der Tabelle hinzufügen.
create fulltext index article_content on tbl_article_content(article_content) WITH PARSER ngram;
INSERT INTO `tbl_article_content` VALUES ('2', '文章标题', '文章摘要', '文章内容', '2', '2022-02-05 13:47:55', '2022-02-05 13:47:59');
mysql> select * FROM tbl_article_content222 WHERE MATCH(article_content) AGAINST('内容'); +----+---------------+-----------------+-----------------+------------+---------------------+---------------------+ | id | article_title | article_summary | article_content | article_id | create_date | modified_date | +----+---------------+-----------------+-----------------+------------+---------------------+---------------------+ | 2 | 文章标题 | 文章摘要 | 文章内容 | 2 | 2022-02-05 13:47:55 | 2022-02-05 13:47:59 | +----+---------------+-----------------+-----------------+------------+---------------------+---------------------+ 1 row in set
Die Schlüsselwörter für die Volltextabfrage sind MATCH und AGAINST.
5. Grammatik ; Das heißt: MATCH entspricht der Spalte, die abgeglichen werden soll, und AGAINST ist der zu findende Inhalt.Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Volltextsuchfunktion von mysql5.7.25. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!