mysql5.7.25使用全文檢索功能的實(shí)例教程
前言
有時(shí)項(xiàng)目中需要用到全文檢索功能,如果全文檢索數(shù)量相對(duì)較小,并且不希望單獨(dú)搭建elasticsearch這樣的專用索引工具,就可以考慮使用mysql自帶的全文檢索功能。
mysql 5.7.25自帶的全文檢索功能,有一定的方便性。
在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分詞器把中文段落預(yù)處理拆分成單詞,然后存入數(shù)據(jù)庫(kù)。
從MySQL 5.7.6開始,MySQL內(nèi)置了ngram全文解析器,用來支持中文、日文、韓文分詞。
本文使用的MySQL 版本是5.7.25,InnoDB數(shù)據(jù)庫(kù)引擎。
1. 創(chuàng)建帶有全文索引的表
CREATE TABLE `tbl_article_content` ( `id` bigint(40) NOT NULL AUTO_INCREMENT, `article_title` varchar(60) COMMENT '標(biāo)題', `article_summary` varchar(120) COMMENT '摘要', `article_content` text NOT NULL COMMENT '內(nèi)容', `article_id` bigint(40) NOT NULL COMMENT '對(duì)應(yīng)文章ID', `create_date` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間', `modified_date` datetime NOT NULL COMMENT '更新時(shí)間', 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 */ 它表示5.01.00 版本或者更高的版本,才執(zhí)行.
WITH PARSER `ngram`是指定分詞引擎。
2. 添加全文索引
如果在創(chuàng)建表的時(shí)候未添加全文索引,可以在建表之后進(jìn)行添加。
create fulltext index article_content on tbl_article_content(article_content) WITH PARSER ngram;
3. 添加測(cè)試數(shù)據(jù)
INSERT INTO `tbl_article_content` VALUES ('2', '文章標(biāo)題', '文章摘要', '文章內(nèi)容', '2', '2022-02-05 13:47:55', '2022-02-05 13:47:59');
4. 執(zhí)行查詢
mysql> select * FROM tbl_article_content222 WHERE MATCH(article_content) AGAINST('內(nèi)容'); +----+---------------+-----------------+-----------------+------------+---------------------+---------------------+ | id | article_title | article_summary | article_content | article_id | create_date | modified_date | +----+---------------+-----------------+-----------------+------------+---------------------+---------------------+ | 2 | 文章標(biāo)題 | 文章摘要 | 文章內(nèi)容 | 2 | 2022-02-05 13:47:55 | 2022-02-05 13:47:59 | +----+---------------+-----------------+-----------------+------------+---------------------+---------------------+ 1 row in set
全文查詢的關(guān)鍵字為MATCH和AGAINST。
5. 語(yǔ)法
MATCH (col1,col2,...) AGAINST (expr [search_modifier]) search_modifier: { IN BOOLEAN MODE | WITH QUERY EXPANSION }
例如:SELECT * FROM tab_name WHERE MATCH ('列名1,列名2...列名n') AGAINST('詞1 詞2 詞3 ... 詞m');
即:MATCH 相當(dāng)于要匹配的列,而 AGAINST 就是要找的內(nèi)容。
總結(jié)
到此這篇關(guān)于mysql5.7.25使用全文檢索功能的文章就介紹到這了,更多相關(guān)mysql5.7.25使用全文檢索內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyEclipse通過JDBC連接MySQL數(shù)據(jù)庫(kù)基本介紹
MyEclipse使用Java 通過JDBC連接MySQL數(shù)據(jù)庫(kù)的基本測(cè)試前提是MyEclipse已經(jīng)能正常開發(fā)Java工程2012-11-11MySQL查詢重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))
查重是我們?cè)诠ぷ髦薪?jīng)常會(huì)遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于MySQL查詢重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03mysql數(shù)據(jù)庫(kù)備份及恢復(fù)命令 mysqldump,source的用法
mysql數(shù)據(jù)庫(kù)備份及恢復(fù)命令 mysqldump,source的用法,需要的朋友可以參考下。2011-02-02Mysql通過ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟
mysql在使用的過程中,難免遇到數(shù)據(jù)庫(kù)表誤操作,下面這篇文章主要給大家介紹了關(guān)于Mysql通過ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06MySQL replace into 語(yǔ)句淺析(一)
這篇文章主要介紹了MySQL replace into 語(yǔ)句淺析(一),本文講解了replace into的原理、使用方法及使用的場(chǎng)景和使用示例,需要的朋友可以參考下2015-05-05