国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql全文搜索中文應(yīng)用

2024-07-24 12:38:16
字體:
供稿:網(wǎng)友

今天要介紹的就是mysql全文搜索的應(yīng)用,全文檢索的表的存儲引擎類型必須為MyISAM,否則不能做全文搜索.

首先用下面表舉例,代碼如下:

  1. CREATE TABLE articles (02.id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,03.title VARCHAR(200),04.body TEXT,05.FULLTEXT (title,body)06.) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

MySQL使用Match()和Against()執(zhí)行全文搜索,舉例如下:

SELECT body FROM articles WHERE Match(body) Against('m.survivalescaperooms.com');

如上Match是正對指定的列進(jìn)行搜索,Against('m.survivalescaperooms.com')是正對指定詞進(jìn)行搜索.

另外:使用查詢擴(kuò)展WITH QUERY EXPANSION,將會搜索出更多結(jié)果(mysql會將匹配的行中有用的詞再次進(jìn)行搜索,這樣搜索出來的結(jié)果更多,但可能不是你想要的);

使用布爾文本搜索IN BOOLEAN MODE,類似我們平時(shí)使用搜索引擎時(shí)用到的的語法,邏輯與、邏輯或、邏輯非等.支持的布爾操作符如下.

  1. 全文布爾操作符: 
  2. -------------------------------------------------------------------------------------------------------------- 
  3. |操作符                        |  說明                                                                                  | 
  4. -------------------------------------------------------------------------------------------------------------- 
  5. |    +                       |包含,詞必須存在                                                                              
  6. |     -                      |排除,詞必須不出現(xiàn)                                                                         
  7. |     >                      |包含,而且增加等級值                                                                       
  8. |     <                      |包含,且減少等級值                                                                           
  9. |     ()                      |把詞組成子表達(dá)式(允許這些子表達(dá)式作為一個(gè)組被包含,排除,排列等) 
  10. |      ~                     |取消一個(gè)詞的排序值  
  11. |     *                       |詞尾的通配符 
  12. |     " "                     |定義一個(gè)短語(與單個(gè)詞的列表不一樣,它匹配整個(gè)短語以便包含或排除這個(gè)短語)   
  13. ---------------------------------------------------------------------------------------------------------------- 

使用方法如下:

  1. SELECT * FROM articles WHERE MATCH (title,body) 
  2.  
  3.      AGAINST ('+apple -banana' IN BOOLEAN MODE); 

+ 表示AND,即必須包含,- 表示NOT,即不包含,代碼如下:

  1. SELECT * FROM articles WHERE MATCH (title,body) 
  2.  
  3.      AGAINST ('apple banana' IN BOOLEAN MODE); 

apple和banana之間是空格,空格表示OR,即至少包含apple、banana中的一個(gè),代碼如下 :

  1. SELECT * FROM articles WHERE MATCH (title,body) 
  2.  
  3.      AGAINST ('+apple banana' IN BOOLEAN MODE); 

必須包含apple,但是如果同時(shí)也包含banana則會獲得更高的權(quán)重,代碼如下:

  1. SELECT * FROM articles WHERE MATCH (title,body) 
  2.  
  3.      AGAINST ('+apple ~banana' IN BOOLEAN MODE); 

~ 是我們熟悉的異或運(yùn)算符,返回的記錄必須包含apple,但是如果同時(shí)也包含banana會降低權(quán)重,但是它沒有 +apple -banana 嚴(yán)格,因?yàn)楹笳呷绻琤anana壓根就不返回,代碼如下:

  1. SELECT * FROM articles WHERE MATCH (title,body) 
  2.  
  3.  AGAINST ('+apple +(>banana <orange)' IN BOOLEAN MODE); 

返回同時(shí)包含apple和banana或者同時(shí)包含apple和orange的記錄,但是同時(shí)包含apple和banana的記錄的權(quán)重高于同時(shí)包含apple和orange的記錄.

linux中mysql中文全文搜索,代碼如下:

  1. centos6 
  2. xampp1.7.7 
  3. mysql5.5 
  4.  
  5. # /opt/lampp/bin/mysql -uroot -ppassword 
  6.  
  7. mysql> SHOW VARIABLES LIKE 'plugin_dir'
  8. --插件路徑:/opt/lampp/lib/mysql/plugin 
  9.  
  10. # wget http://mysqlcft.googlecode.com/files/mysqlcft-1.0.0-x86_64-bin.tar.gz 
  11. # tar zxvf mysqlcft-1.0.0-x86_64-bin.tar.gz 
  12. # cp mysqlcft.so /opt/lampp/lib/mysql/plugin 
  13.  
  14. # /opt/lampp/bin/mysql -uroot -ppassword 
  15. mysql> INSTALL PLUGIN mysqlcft SONAME 'mysqlcft.so'
  16. mysql> SELECT * FROM mysql.plugin; 
  17. mysql> SHOW PLUGINS; 
  18.  
  19.  
  20. ALTER IGNORE TABLE articles ADD FULLTEXT INDEX cnFullIndex (title,body) WITH PARSER mysqlcft; 
  21.  
  22. SELECT * FROM articles WHERE MATCH(title,body) AGAINST ('北京' IN BOOLEAN MODE

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 富源县| 泾川县| 开江县| 类乌齐县| 洞头县| 阳曲县| 南溪县| 乌恰县| 沁源县| 东平县| 房产| 岳普湖县| 长乐市| 周口市| 鲁山县| 攀枝花市| 大理市| 阿拉善盟| 清镇市| 云安县| 平顺县| 安多县| 东乌| 兰州市| 应城市| 临邑县| 东乡县| 礼泉县| 睢宁县| 广元市| 西乡县| 五峰| 大兴区| 阿瓦提县| 金昌市| 许昌县| 阿拉善盟| 定州市| 龙州县| 洮南市| 海口市|