翻譯|使用教程|編輯:鮑佳佳|2020-07-10 10:54:06.570|閱讀 466 次
概述:全文搜索(FTS)是搜索引擎用來在其數據庫中查找結果的技術之一。你也可以利用FTS的功能來搜索對于Like運算符而言過于復雜的模式。在今天的文章中,我們將學習如何在MySQL中應用全文搜索。在第2部分中,我們將使用Navicat for MySQL作為我們的數據庫客戶端嘗試進行一些查詢。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Navicat for MySQL是一套管理和開發 MySQL 或 MariaDB 的理想解決方案。數據傳輸、數據同步和結構同步讓你以低成本輕松快速地遷移數據。提供詳細的指引,在各種數據庫之間傳輸數據。比對和同步數據庫的數據和結構。只需幾秒鐘就能設置和部署比對,并獲得你要運行更改的詳細腳本。
全文搜索解釋
FTS的目的是獲取那些僅僅是搜索條件與文本數據松散匹配的文檔。 因此,搜索“cars and truck”,將分別返回包含兩個詞匯的結果,例如“cars”或“trucks”,或者包含不同順序的詞匯(“truck and cars”),或包含搜索詞匯的變體,例如 “car”和“truck”(單數形式)。這使企業可以猜測用戶正在搜索什么,并在更快的時間內返回更相關的結果。
像MySQL這樣的數據庫管理系統(DBMS)確實允許使用LIKE表達式進行準文本查找。 但是,Like子句有一些缺點:
1.它們在大型數據集上往往表現不佳。
2.它們受限于完全匹配用戶輸入,這意味著即使實際上存在相關信息的記錄,查詢也可能不會返回 任何結果。
為了在MySQL中執行全文搜索,你必須在支持全文搜索的字段中添加FULLTEXT索引。 此外,全文索引只能與MyISAM和InnoDB表一起使用。最后,請注意,只有字段類型為CHAR,VARCHAR或TEXT的列才能創建全文索引。在CREATE TABLE語句中可以給出FULLTEXT索引定義,或者稍后使用ALTER TABLE或CREATE INDEX命令添加。大型數據集的提示:相比先創建FULLTEXT索引然后再加載數據,將數據先加載到沒有FULLTEXT索引的表中,然后再創建索引,這樣會快得多。
全文搜索分為三種不同的類型:
1.自然語言全文搜索在第2部分中的清單中,我們將依次介紹這些內容。
一個基礎例子
在Sakila示例數據庫中,film表中包含了商店電影收藏中每部電影的信息,包括其標題、放映時間和描述。我們可以使用“表單視圖”詳細查看film表記錄。只有完整版本提供表單視圖功能,可讓我們以表單的形式查看、更新、插入或刪除數據,其中當前記錄以詳細信息顯示。還有導航欄可以讓我們在記錄之間快速切換。
film_table
通過將FULLTEXT索引添加到描述列,我們可以在其上添加全文搜索功能。我們也可以發出ALTER TABLE或CREATE INDEX命令,但是Navicat有一種更簡單的方法!表設計器包含許多與不同表對象有關的選項卡。其中包括列定義、索引、外鍵、觸發器和選項等。我們可以通過使用“字段選擇器”對話框選擇描述字段,在描述字段上添加全文索引,然后從“索引類型”下拉列表中選擇“全文”:
單擊保存按鈕以創建新索引:
總結
現在,我們已經為全文搜索準備了數據庫,我們將在第2部分中學習如何使用全文搜索功能。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn