MYSQL5.7 全文檢索中文無返回數(shù)據(jù)的問題解決
在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分詞器把中文段落預(yù)處理拆分成單詞,然后存入數(shù)據(jù)庫。
從MySQL 5.7.6開始,MySQL內(nèi)置了ngram全文解析器,用來支持中文、日文、韓文分詞。
本文使用的MySQL 版本是5.7.22,InnoDB數(shù)據(jù)庫引擎。
1.修改my.ini文件,增加ngram 解析器,增加ngram_token_size= 2,然后重啟MYSQL服務(wù)
[mysql] # 設(shè)置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] # 設(shè)置3306端口 port = 13306 #mysql-5.7.43-winx64的路徑 basedir = D:\install\mysql\mysql-5.7.44-winx64 #修改為自己的數(shù)據(jù)庫解壓路徑 #mysql-5.7.43-winx64的路徑+\data datadir = D:\install\mysql\mysql-5.7.44-winx64\data #修改為自己的數(shù)據(jù)庫存儲路徑 # 允許最大連接數(shù) max_connections=20 # 服務(wù)端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 # 創(chuàng)建新表時將使用的默認存儲引擎 default-storage-engine=INNODB # 創(chuàng)建模式 sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ft_min_word_len = 1 ngram_token_size= 2
2.創(chuàng)建帶索引表:
CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR (200), body TEXT, FULLTEXT (title) WITH PARSER ngram ) ENGINE = INNODB;
或修改表添加索引
drop index ft_title on articles; create fulltext index ft_title on articles(title) WITH PARSER ngram;
3.查詢驗證
SELECT * FROM articles WHERE MATCH (title) AGAINST ('上海 故事' IN NATURAL LANGUAGE MODE); SELECT * FROM articles WHERE MATCH (title) AGAINST ('上海 故事' IN BOOLEAN MODE);
到此這篇關(guān)于MYSQL5.7 全文檢索中文無返回數(shù)據(jù)的問題解決的文章就介紹到這了,更多相關(guān)MYSQL5.7 中文無返回數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows10下MySQL5.7.19安裝教程 MySQL忘記root密碼修改方法
這篇文章主要為大家詳細介紹了Windows10下MySQL5.7.19安裝教程,以及MySQL忘記root密碼的修改方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法
這篇文章主要介紹了mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法,需要的朋友可以參考下2014-12-12