mysql全文索引含义_【分针网】MySQL全文索引应用简明教程
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
本文從以下幾個(gè)方面介紹下MySQL全文索引的基礎(chǔ)知識(shí):1.MySQL全文索引的幾個(gè)注意事項(xiàng)2.全文索引的語(yǔ)法3.幾種搜索類型的簡(jiǎn)介4.幾種搜索類型的實(shí)例
全文索引的幾個(gè)注意事項(xiàng)1.搜索必須在類型為fulltext的索引列上,match中指定的列必須在fulltext中指定過(guò)2.僅能應(yīng)用在表引擎為MyIsam類型的表中(MySQL 5.6以后也可以用在Innodb表引擎中了)3.僅能再char、varchar、text類型的列上面創(chuàng)建全文索引4.像普通索引一樣,可以在定義表時(shí)指定,也可以在創(chuàng)建表后添加或者修改5.對(duì)于一個(gè)大數(shù)量級(jí)記錄插入,向沒(méi)有索引的表中插入數(shù)據(jù)后創(chuàng)建索引比向有索引的數(shù)據(jù)表中插入的過(guò)程要快很多6.搜索字符串必須是一個(gè)常量字符串,不能是表的列名7.在搜索記錄的選擇性超過(guò)50%的時(shí)候,認(rèn)為沒(méi)有匹配(只在自然搜索中限制)
全文索引搜索語(yǔ)法MATCH (列名1, 列名2,…) AGAINST (搜索字符串 [搜索修飾符])其中在match里面指定的列名1、2等,就是在建立全文索引中指定的列名, 后面的搜索修飾符說(shuō)明如下:search_modifier:{IN NATURAL LANGUAGE MODE| IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION| IN BOOLEAN MODE| WITH QUERY EXPANSION}
幾種搜索類型的簡(jiǎn)介上面的搜索修飾符,實(shí)際上說(shuō)明了3種全文搜索類型
IN NATURAL LANGUAGE MODE簡(jiǎn)介:默認(rèn)的搜索形式(不加任何搜索修飾符或者修飾符為 IN NATURAL LANGUAGE MODE 的情況)特點(diǎn):1.對(duì)于搜索字符串中的字符都解析為正常的字符,沒(méi)有特殊意義2.對(duì)屏蔽字符列表中的字符串進(jìn)行過(guò)濾3.當(dāng)記錄的選擇性超過(guò)50%的時(shí)候,通常被認(rèn)為是不匹配。4.返回記錄按照記錄的相關(guān)性進(jìn)行排序顯示
IN BOOLEAN MODE簡(jiǎn)介:布爾模式搜索(搜索修飾符為IN BOOLEAN MODE的情況)特點(diǎn):1.會(huì)按照一定的規(guī)則解析搜索字符串中的特殊字符的含義,進(jìn)行一些邏輯意義的規(guī)則。如:某個(gè)單詞必須出現(xiàn),或者不能出現(xiàn)等。2.這種類型的搜索返回的記錄是不按照相關(guān)性進(jìn)行排序的
WITH QUERY EXPANSION簡(jiǎn)介:一種稍微復(fù)雜的搜索形式,實(shí)際上是進(jìn)行了2次自然搜索,可以返回記錄直接簡(jiǎn)介性關(guān)系的記錄,修飾詞IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION 或者WITH QUERY EXPANSION modifier特點(diǎn):這種類型的搜素,實(shí)際上提供了一種間接的搜索功能,比如:我搜索某個(gè)詞,而且返回的第一行中卻不包含搜索詞中的任意字符串。可以根據(jù)第一次搜索結(jié)果的記錄詞進(jìn)行第二次匹配,從而可能找到一些間接關(guān)系的匹配記錄。
總結(jié)
以上是生活随笔為你收集整理的mysql全文索引含义_【分针网】MySQL全文索引应用简明教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS 16降级iOS 15.5方法教程
- 下一篇: 旧iPhone升级iOS 16后哪些功能