亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL全文索引應用簡明教程

2024-07-24 13:10:59
字體:
來源:轉載
供稿:網友
本文從以下幾個方面介紹下MySQL全文索引的基礎知識:
  1. MySQL全文索引的幾個注意事項
  2. 全文索引的語法
  3. 幾種搜索類型的簡介
  4. 幾種搜索類型的實例
全文索引的幾個注意事項
  • 搜索必須在類型為fulltext的索引列上,match中指定的列必須在fulltext中指定過
  • 僅能應用在表引擎為MyIsam類型的表中(MySQL 5.6以后也可以用在Innodb表引擎中了)
  • 僅能再char、varchar、text類型的列上面創建全文索引
  • 像普通索引一樣,可以在定義表時指定,也可以在創建表后添加或者修改
  • 對于一個大數量級記錄插入,向沒有索引的表中插入數據后創建索引比向有索引的數據表中插入的過程要快很多
  • 搜索字符串必須是一個常量字符串,不能是表的列名
  • 在搜索記錄的選擇性超過50%的時候,認為沒有匹配(只在自然搜索中限制)
全文索引搜索語法
MATCH (列名1, 列名2,…) AGAINST (搜索字符串 [搜索修飾符])

其中在match里面指定的列名1、2等,就是在建立全文索引中指定的列名, 后面的搜索修飾符說明如下:

search_modifier:{IN NATURAL LANGUAGE MODE| IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION| IN BOOLEAN MODE| WITH QUERY EXPANSION}
幾種搜索類型的簡介

上面的搜索修飾符,實際上說明了3種全文搜索類型

IN NATURAL LANGUAGE MODE

簡介:默認的搜索形式(不加任何搜索修飾符或者修飾符為 IN NATURAL LANGUAGE MODE 的情況)

特點:

  1. 對于搜索字符串中的字符都解析為正常的字符,沒有特殊意義
  2. 對屏蔽字符列表中的字符串進行過濾
  3. 當記錄的選擇性超過50%的時候,通常被認為是不匹配。
  4. 返回記錄按照記錄的相關性進行排序顯示
IN BOOLEAN MODE

簡介:布爾模式搜索(搜索修飾符為IN BOOLEAN MODE的情況)

特點:

  1. 會按照一定的規則解析搜索字符串中的特殊字符的含義,進行一些邏輯意義的規則。如:某個單詞必須出現,或者不能出現等。
  2. 這種類型的搜索返回的記錄是不按照相關性進行排序的

WITH QUERY EXPANSION

簡介:一種稍微復雜的搜索形式,實際上是進行了2次自然搜索,可以返回記錄直接簡介性關系的記錄,修飾詞IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION 或者WITH QUERY EXPANSION modifier

特點:這種類型的搜素,實際上提供了一種間接的搜索功能,比如:我搜索某個詞,而且返回的第一行中卻不包含搜索詞中的任意字符串。可以根據第一次搜索結果的記錄詞進行第二次匹配,從而可能找到一些間接關系的匹配記錄。

幾種搜索類型的實例介紹

IN NATURAL LANGUAGE MODE模式下的應用:

還是應用在product表,其中在name字段我們建立了全文索引,因為我需要根據關鍵詞在name列匹配出相關記錄

Sql語句如下:

SELECT * FROM product WHERE match(name) against(‘auto')

時間還不錯,在將近87w的記錄中命中了1w多條,耗時1.15秒,效果還是不錯

注意:在默認的情況下已經是根據相關性從高到低返回記錄了

我們可以SELECT match(name) against(‘auto') FROM product 查看記錄的相關性值,值都在0和1之間, 0代表記錄不匹配

 重要的幾個特性:

1. 哪些詞會被忽略

搜索詞太短 默認全文索引認為4個以上字符的單詞是有效詞,我們可以在配置中修改ft_min_word_len進行配置
屏蔽詞表中的詞 默認的全文索引將一些常用詞屏蔽掉,因為這些詞太常見了,沒有任何語義作用,所以搜索過程中是忽略不計的。當然這個列表也是可以配置的。
2. 如何進行分詞的

全文索引認為一個連續的有效字符(正則中/w匹配的字符集)是一個單詞,也可以包含一個“'”, 但是連續的兩個'會被認為是一個分隔符。其他的分隔符如:空格、逗號、句點等

IN BOOLEAN MODE 模式下的應用:

在布爾匹配模式中,我們可以添加一些特殊的符號,增加一些搜索過程的邏輯功能。如官方網站中提供的實例(搜索含有mysql字符串 且 不含Yousql的語句):

SELECT * FROM articles WHERE MATCH (title,body)-> AGAINST (‘+MySQL -YourSQL' IN BOOLEAN MODE);

可見,我們對搜索的控制又多了一些,看起來“高大上”了些。

實際上,上面的操作隱含了幾個意思:

加號:相當于and
減號:相當于not
沒有:相當于or

下面看下布爾類型搜索的幾個重要特性:

1. 沒有50%記錄選擇性的限制,即使搜索結果記錄超過總數的50%也同樣返回結果
2. 不會自動的按記錄的相關性進行降序排序
3. 可以直接應用在沒有創建fulltext的全文索引上,但是這樣會查詢的非常慢,所以說還是別用了。
4. 支持最小、最大單詞長度
5. 應用屏蔽詞列表

布爾搜索支持的操作符:

n 加號 +:指示修飾的單詞必須出現在記錄中
n 減號 -:指示修飾的單詞必須不能出現在記錄中
n 沒有任何操作符:單詞可有可無,但是包含該詞的記錄相關性高
n 雙引號 “ : 將一個詞組作為一個匹配。如:”one word” 匹配one word在一起的單詞

下面是官方的一些實例:

至少包含一個詞的記錄‘apple banana' 必須包含著兩個詞‘+apple +juice' 必須包含apple,包含macintosh的記錄相關性高,也可以不包含‘+apple macintosh' 必須包含apple且不能喊有macintosh‘+apple -macintosh' 查找apple開頭單詞的記錄‘apple*' 完整匹配some words單詞‘”some words”‘

了解了基本的mysql全文索引知識,覺得它的全文索引比like當然是強了很多。但是面對高級的搜索還是略顯簡陋,且性能問題也是擔憂。

本人只是作為入門了解,也是對官網一些基本知識的翻譯。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区免费网站| 正在播放国产一区| 国产精品欧美风情| 国产香蕉一区二区三区在线视频| 日韩欧美极品在线观看| 国产精品2018| 久久99青青精品免费观看| 国产精品极品美女粉嫩高清在线| 98午夜经典影视| www.国产精品一二区| 亚洲人成电影网站色xx| 在线视频日韩精品| 福利视频第一区| 91爱视频在线| 国产亚洲激情视频在线| 成人性生交xxxxx网站| 91久久久久久久久久久久久| 精品高清美女精品国产区| 精品免费在线观看| 日韩在线观看免费高清| 亚洲国产精品字幕| 国产精品一区二区三| 久久久亚洲影院| 国产精品久久久久久久9999| 色爱精品视频一区| 成人国产亚洲精品a区天堂华泰| 精品亚洲一区二区三区在线观看| 亚洲图中文字幕| 欧美精品18videos性欧美| 欧美成人国产va精品日本一级| 国产精品成人观看视频国产奇米| 国产精品伦子伦免费视频| 国产精品高潮呻吟久久av黑人| 欧美人在线观看| 亚洲视频免费一区| 国产成人一区二区在线| 亚洲自拍欧美另类| 91精品国产99久久久久久| 77777少妇光屁股久久一区| 亚洲一区美女视频在线观看免费| 日本精品久久久久久久| 欧美夫妻性生活xx| 成人黄色免费片| 韩国三级电影久久久久久| 午夜精品国产精品大乳美女| 亚洲成人激情视频| 亚洲黄页视频免费观看| 91精品国产色综合| 日韩av网站大全| 日韩精品中文字幕有码专区| 欧美黑人狂野猛交老妇| 欧美成年人在线观看| 一区二区三区视频免费在线观看| 国产亚洲精品久久久优势| 久久艹在线视频| 91精品视频观看| 亚洲人成免费电影| 国产亚洲福利一区| 亚洲精品国产精品国自产在线| 成人免费福利在线| 岛国av一区二区| 中文字幕日韩精品有码视频| 亚洲999一在线观看www| 亚洲黄一区二区| 91久久久久久国产精品| 91精品在线影院| 国产美女精品视频免费观看| 亚洲第一视频网| 精品国产一区二区三区久久狼5月| 亚洲女人天堂成人av在线| 亚洲精品美女在线观看| 亚洲天堂影视av| 2019av中文字幕| 久久国产精品久久精品| 影音先锋欧美在线资源| 热久久这里只有精品| 成人写真视频福利网| 成人xxxxx| 日韩小视频网址| 最新91在线视频| 国产欧美精品一区二区三区-老狼| 亚洲免费电影一区| 国产中文字幕日韩| 欧美电影院免费观看| 欧美日韩国内自拍| 91亚洲精品一区二区| 久久久国产精品免费| 久久免费视频在线观看| 精品久久久久久久大神国产| 亚洲图片在线综合| 国产日韩视频在线观看| 日韩电影中文字幕| 亚洲国产免费av| 欧美性色xo影院| 26uuu亚洲国产精品| 69久久夜色精品国产69| 久久成人综合视频| 欧美日本黄视频| 91po在线观看91精品国产性色| 中文字幕亚洲国产| 国产精品三级久久久久久电影| 日韩精品免费视频| 亚洲国产精品va在线| 精品免费在线观看| 亚洲国产日韩欧美在线99| 久久久久久亚洲精品不卡| 中文精品99久久国产香蕉| 亚洲成人av片在线观看| 午夜精品久久久久久久久久久久| 亚洲黄页视频免费观看| 亚洲精品av在线| 午夜剧场成人观在线视频免费观看| 91黄色8090| 成人在线中文字幕| 97精品国产97久久久久久| 成人免费视频97| 久久男人资源视频| 亚洲一区精品电影| 国产精品自拍偷拍| 91精品久久久久久久久久| 久久777国产线看观看精品| 亚洲精品日韩久久久| 欧美一区二区色| 欧美高清电影在线看| 日韩av电影院| 亚洲欧美在线免费观看| 国产精品一二区| 91麻豆国产精品| 久久av.com| 欧美性jizz18性欧美| 欧美成年人视频网站欧美| 91欧美视频网站| 都市激情亚洲色图| 日韩精品日韩在线观看| 8x海外华人永久免费日韩内陆视频| 日韩小视频网址| 国产精品欧美亚洲777777| 久久久人成影片一区二区三区观看| 欧美日韩国产va另类| 在线观看欧美日韩国产| 久久久久久久久久久成人| 国产精品视频免费在线| 国产亚洲aⅴaaaaaa毛片| 96精品久久久久中文字幕| 69国产精品成人在线播放| 日韩中文字幕视频| 日韩成人性视频| 国产精品欧美日韩一区二区| 海角国产乱辈乱精品视频| 成人欧美一区二区三区在线湿哒哒| 亚洲人成电影在线观看天堂色| 亚洲在线视频福利| 亚洲激情在线观看视频免费| 中文字幕在线成人| 精品香蕉一区二区三区| 91热精品视频| 成人黄色免费看| 日韩av高清不卡| 国模gogo一区二区大胆私拍| 欧美一级片久久久久久久| 日韩av在线一区二区| 亚洲国产婷婷香蕉久久久久久| 亚洲bt天天射| 日韩av中文字幕在线播放|