MySQL學習筆記 全文本搜尋

2021-10-03 21:14:52 字數 2069 閱讀 8401

並非所有搜尋引擎都支援全文搜尋。最常用的兩個搜尋引擎myisam(支援全文搜尋)和innodb(不支援)。

將要全文本搜尋的列新增索引:在建立表時指定fulltext或者在已有資料表上立即索引。

match()指定被搜尋的列,

against()指定要搜尋的表示式

#全文本搜尋在text列中包含'武漢'的行

select

text

from weibo

where

match

(text

) against(

'武漢'

);

使用like也可完成上述搜尋

select

count

(text

)from weibo

where

text

like

'%武漢%'

;

查詢擴充套件用來設法放寬返回的全文本搜尋的結果的範圍。

例如查詢與「武漢」相關的行,不一定包含武漢,但可能相關。

select

text

from weibo

where

match

(text

) against(

'武漢'

with query expansion)

;

下面舉幾個例子,說明某些操作符如何使用:

select note_ text

from productnotes

where

match

(note_text) against(

'rabbit-bait'

inboolean

mode

);

匹配rabbit,排除bait

select note_ text

from productnotes

where

match

(note_text) against(

' +rabbit +bait'

inboolean

mode

);

這個搜尋匹配包含詞rabbit和bait的行。

select note_ text

from productnotes

where

match

(note_text) against (

' rbbit bait'

inboolean

mode

);

沒有指定操作符,這個搜尋匹配包含rabit和bait中的至少乙個詞的行。

select note_ text

from productnotes

where

match

(note_text) against(

'"rabbit bait"'

inboolean

mode

);

這個搜尋匹配短語rabbit bait而不是匹配兩個詞rabbit和bait。

select note_ text

from productnotes

where

match

(note_text) against(

'>rabbit in

boolean

mode

);

匹配rabbit和carrot, 增加前者的等級,降低後者的等級。

select note_ text

from productnotes

where

match

(note_text) against(

'+safe+(combination)'

inboolean

mode

);

這個搜尋匹配詞safe和combination,降低後者的等級

mysql在全文本 MYSQL全文本搜尋

全文本搜尋 使用全文本搜尋 啟用全文本搜尋 進行全文本搜尋 使用拓展查詢 布林文字搜尋 使用全文本搜尋 為了進行全文本搜尋,必須索引被搜尋的列,而且要隨著資料的改變不斷的重新索引。對表列進行適當的改進後,mysql會自動進行所有的索引和重新索引。優點 效能快 明確控制 智慧型化的結果 啟用全文本搜尋...

MYSQL全文本搜尋

為了進行全文本搜尋,必須索引被搜尋的列,而且要隨著資料的改變不斷的重新索引。對表列進行適當的改進後,mysql會自動進行所有的索引和重新索引。優點 效能快明確控制 智慧型化的結果 fulltext 列名 mysql對該列索引自動更新 使用match 被搜尋的列 against 指定要使用的搜尋表示式...

MySQL的全文本搜尋

我們在使用mysql時,一般會用到兩種引擎 myisam和innodb,myisam支援全文本搜尋,但不支援事務處理 而innodb支援事務處理,但不支援全文本搜尋。一 有時,我們需要使用全文本搜尋,例如 要搜尋文字中存在指定的某個詞,且以這個詞出現的順序排序。先建立支援全文本搜尋的表 create...