MySQL全文索引運用簡明教程。本站提示廣大學習愛好者:(MySQL全文索引運用簡明教程)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL全文索引運用簡明教程正文
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 BOOLEAN MODE的情形)
特色:
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固然是強了許多。然則面臨高等的搜刮照樣略顯粗陋,且機能成績也是擔心。
自己只是作為入門懂得,也是對官網一些根本常識的翻譯。