MySQL中的AROUND是用來擴(kuò)展全文檢索功能的一個關(guān)鍵字,其主要功能是在全文索引跟蹤時能夠搜索到指定關(guān)鍵字,并且把搜索到的文本周邊的內(nèi)容一起返回。以下是一個示例:
SELECT *, MATCH(content) AGAINST ('keyword' IN BOOLEAN MODE) as score, SUBSTR(content, LOCATE('keyword', content) - 10, 100) as summary FROM table WHERE MATCH(content) AGAINST('+keyword' IN BOOLEAN MODE) ORDER BY score DESC LIMIT 10;
在上述示例中,我們使用了MySQL的全文索引,并將內(nèi)容中的關(guān)鍵字以及其相關(guān)文本在結(jié)果集中展示出來。其中,SUBSTR函數(shù)用于截取指定位置的文本,LOCATE函數(shù)用于定位關(guān)鍵字在文本中的位置。
需要注意的是,AROUND參數(shù)必須在全文索引建立時設(shè)定。例如:
CREATE TABLE mytable ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, text TEXT, FULLTEXT (text) WITH PARSER ngram_parser, FULLTEXT (text) WITH PARSER ngram_parser AROUND(5) ) ENGINE=MyISAM;
在上述代碼中,我們指定了ngram_parser為全文索引解析器,并設(shè)置了AROUND參數(shù)為5,表示搜索結(jié)果中包括距離關(guān)鍵字五個單詞以內(nèi)的文本。使用AROUND參數(shù)可以為全文檢索功能帶來更準(zhǔn)確的結(jié)果及更好的體驗(yàn)。