您好,登錄后才能下訂單哦!
mysql全文檢索怎么做?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
mysql做全文檢索的方法:
1、自然語(yǔ)言檢索:
IN NATURAL LANGUAGE MODE
2、布爾檢索:
IN BOOLEAN MODE
剔除一半匹配行以上都有的詞,譬如說(shuō),每個(gè)行都有this這個(gè)字的話(huà),那用this去查時(shí),會(huì)找不到任何結(jié)果,這在記錄條數(shù)特別多時(shí)很有用,
原因是數(shù)據(jù)庫(kù)認(rèn)為把所有行都找出來(lái)是沒(méi)有意義的,這時(shí),this幾乎被當(dāng)作是stopword(中斷詞);但是若只有兩行記錄時(shí),是啥鬼也查不出來(lái)的,
因?yàn)槊總€(gè)字都出現(xiàn)50%(或以上),要避免這種狀況,請(qǐng)用IN BOOLEAN MODE。
● IN BOOLEAN MODE的特色:
·不剔除50%以上符合的row。
·不自動(dòng)以相關(guān)性反向排序。
·可以對(duì)沒(méi)有FULLTEXT index的字段進(jìn)行搜尋,但會(huì)非常慢。
·限制最長(zhǎng)與最短的字符串。
·套用Stopwords。
● 搜索語(yǔ)法規(guī)則:
+ 一定要有(不含有該關(guān)鍵詞的數(shù)據(jù)條均被忽略)。
- 不可以有(排除指定關(guān)鍵詞,含有該關(guān)鍵詞的均被忽略)。
> 提高該條匹配數(shù)據(jù)的權(quán)重值。
< 降低該條匹配數(shù)據(jù)的權(quán)重值。
~ 將其相關(guān)性由正轉(zhuǎn)負(fù),表示擁有該字會(huì)降低相關(guān)性(但不像 - 將之排除),只是排在較后面權(quán)重值降低。
* 萬(wàn)用字,不像其他語(yǔ)法放在前面,這個(gè)要接在字符串后面。
" " 用雙引號(hào)將一段句子包起來(lái)表示要完全相符,不可拆字。
SELECT * FROM articles WHERE MATCH (title,content) AGAINST ('+apple -banana' IN BOOLEAN MODE);
+ 表示AND,即必須包含。- 表示NOT,即必須不包含。即:返回記錄必需包含 apple,且不能包含 banner。
SELECT * FROM articles WHERE MATCH (title,content) AGAINST ('apple banana' IN BOOLEAN MODE);
apple和banana之間是空格,空格表示OR。即:返回記錄至少包含apple、banana中的一個(gè)。
SELECT * FROM articles WHERE MATCH (title,content) AGAINST ('+apple banana' IN BOOLEAN MODE);
返回記錄必須包含apple,同時(shí)banana可包含也可不包含,若包含的話(huà)會(huì)獲得更高的權(quán)重。
SELECT * FROM articles WHERE MATCH (title,content) AGAINST ('+apple ~banana' IN BOOLEAN MODE);
~ 是我們熟悉的異或運(yùn)算符。返回記錄必須包含apple,若也包含了banana會(huì)降低權(quán)重。
但是它沒(méi)有 +apple -banana 嚴(yán)格,因?yàn)楹笳呷绻琤anana壓根就不返回。
SELECT * FROM articles WHERE MATCH (title,content) AGAINST ('+apple +(>banana <orange)' IN BOOLEAN MODE);
返回必須同時(shí)包含“apple banana”或者必須同時(shí)包含“apple orange”的記錄。
若同時(shí)包含“apple banana”和“apple orange”的記錄,則“apple banana”的權(quán)重高于“apple orange”的權(quán)重。
看完上述內(nèi)容,你們掌握mysql全文檢索怎么做的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。