《Mysql學(xué)習(xí)MySQL創(chuàng)建全文索引分享》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)MySQL創(chuàng)建全文索引分享,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
MYSQL教程使用索引時(shí)數(shù)據(jù)庫(kù)性能優(yōu)化的必備技能之一.在MySql數(shù)據(jù)庫(kù)中,有四種索引:聚焦索引(主鍵索引)、普通索引、唯一索引以及我們這里將要介紹的全文索引(FUNLLTEXT INDEX).
MYSQL教程全文索引(也稱全文檢索)是目前搜索引擎使用的一種關(guān)鍵技術(shù).它能夠利用【分詞技術(shù)】等多種算法智能分析出文本文字中關(guān)鍵詞的頻率和重要性,然后依照一定的算法規(guī)則智能地篩選出我們想要的搜索結(jié)果.
MYSQL教程在MySql中,創(chuàng)建全文索引相對(duì)比較簡(jiǎn)單.例如:我們有一個(gè)文章表(article),其中有主鍵ID(id)、文章標(biāo)題(title)、文章內(nèi)容(content)三個(gè)字段.現(xiàn)在我們希望能夠在title和content兩個(gè)列上創(chuàng)建全文索引,article表及全文索引的創(chuàng)建SQL語(yǔ)句如下:
MYSQL教程
CREATE TABLE `article` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) DEFAULT NULL,
`content` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `title` (`title`,`content`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
MYSQL教程上面就是在創(chuàng)建表的同時(shí)創(chuàng)建全文索引的SQL示例.此外,如果我們要給已經(jīng)存在的表的指定字段創(chuàng)建全文索引,同樣以article表為例,我們可以使用如下SQL語(yǔ)句進(jìn)行創(chuàng)建:
MYSQL教程
ALTER TABLE article ADD FULLTEXT INDEX fulltext_article(title,content);
MYSQL教程在MySql中創(chuàng)建全文索引之后,現(xiàn)在就該了解如何使用了.眾所周知,在數(shù)據(jù)庫(kù)中進(jìn)行模糊查詢是使用like關(guān)鍵字進(jìn)行查詢的,例如:
MYSQL教程
SELECT * FROM article WHERE content LIKE ‘%查詢字符串%';
MYSQL教程那么,我們?cè)谑褂萌乃饕策@樣使用嗎?當(dāng)然不是,我們必須使用特有的語(yǔ)法才能使用全文索引進(jìn)行查詢,例如,我們想要在article表的title和content列中全文檢索指定的查詢字符串,我們可以如下編寫SQL語(yǔ)句:
MYSQL教程
SELECT * FROM article WHERE MATCH(title,content) AGAINST (‘查詢字符串');
MYSQL教程強(qiáng)烈注意:MySql自帶的全文索引只能用于數(shù)據(jù)庫(kù)引擎為MYISAM的數(shù)據(jù)表,如果是其他數(shù)據(jù)引擎,則全文索引不會(huì)生效.此外,MySql自帶的全文索引只能對(duì)英文進(jìn)行全文檢索,目前無(wú)法對(duì)中文進(jìn)行全文檢索.如果需要對(duì)包括中文在內(nèi)的文本數(shù)據(jù)進(jìn)行全文檢索,我們需要采用Sphinx(斯芬克斯)/Coreseek技術(shù)來(lái)處理中文.
MYSQL教程注:目前,使用MySql自帶的全文索引時(shí),如果查詢字符串的長(zhǎng)度過短將無(wú)法得到期望的搜索結(jié)果.MySql全文索引所能找到的詞默認(rèn)最小長(zhǎng)度為4個(gè)字符.另外,如果查詢的字符串包括停止詞,那么該停止詞將會(huì)被忽略.
注:如果可能,請(qǐng)盡量先創(chuàng)建表并插入所有數(shù)據(jù)后再創(chuàng)建全文索引,而不要在創(chuàng)建表時(shí)就直接創(chuàng)建全文索引,因?yàn)榍罢弑群笳叩娜乃饕室?
《Mysql學(xué)習(xí)MySQL創(chuàng)建全文索引分享》是否對(duì)您有啟發(fā),歡迎查看更多與《Mysql學(xué)習(xí)MySQL創(chuàng)建全文索引分享》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/13968.html