Navicat 部落格

2019 年 10 月 11 日,由 Robert Gravelle 撰寫

全文檢索搜尋(FTS)是一個搜尋引擎用於在其資料庫中尋找結果的技術。一些對於 Like 運算子而言過於復雜的模式,你可以利用 FTS 的功能來搜尋。在今天的文章中,我們將學習如何在 MySQL 中應用全文檢索搜尋。在第 2 部分中,我們將使用 Navicat for MySQL 作為資料庫用戶端嘗試執行一些查詢。

全文檢索搜尋解釋

FTS 的目的是取得搜尋條件與文字資料僅鬆散符合的文件。因此,搜尋「cars and truck」,將傳回單獨包含單詞的結果,例如「cars」或「trucks」,或者包含字詞的不同順序(「truck and cars」),或包含搜字詞的變體,例如「car」或「truck」。這使企業可以猜測使用者正在搜索什麼,並在更快的時間內傳回更相關的結果。

像 MySQL 這樣的資料庫管理系統(DBMS)確實允許使用 LIKE 運算式進行文字查閱。 但是,Like 子句有一些缺點:

  • 在大型資料集的表現往往不佳。
  • 受限於需要完全符合使用者輸入,這意味著即使實際上存在具有相關資訊的記錄,查詢也不會傳回任何結果。

MySQL 中的全文檢索搜尋

為了在 MySQL 中執行全文檢索搜尋,你必須在支援全文檢索搜尋的欄位中加入 FULLTEXT 索引。此外,全文索引只能與 MyISAM 和 InnoDB 資料表一起使用。最後,請注意,只有 CHAR、VARCHAR 或 TEXT 欄才能建立全文索引。你可以在 CREATE TABLE 語句中指定 FULLTEXT 索引定義,或者稍後使用 ALTER TABLE 或 CREATE INDEX 命令加入。大型資料集的提示:相比先建立 FULLTEXT 索引然後再載入資料,先將資料載入到沒有 FULLTEXT 索引的表中,然後再建立索引,這樣速度會快更多。

全文檢索搜尋分為三種不同的類型:

  • 自然語言全文檢索搜尋
  • 布爾全文檢索搜尋
  • 擴展查詢搜尋

在第 2 部分中,我們將會依次講解這三種類型。

基本例子

Sakila 範例資料庫中,film 資料表包含有關商店電影收藏中每部電影的資訊,包括其標題、放映時間和描述。 我們可以使用「表單檢視」詳細檢視 film 資料表的記錄。只有完整版本提供表單檢視功能,可讓我們以表單的形式檢視、更新、插入或刪除資料,以詳細資料顯示目前記錄。還有導覽列可以讓你快速切換記錄。.

透過將 FULLTEXT 索引加到 description 欄,我們可以在資料表加入全文檢索搜尋功能。我們可以發出 ALTER TABLE 或 CREATE INDEX 命令,但 Navicat 有一種更簡單的方法!就是資料表設計器,它有多個與不同資料表物件有關的索引標籤,其中包括列欄定義、索引、外部索引鍵、觸發器、選項等。我們可以使用「欄拉選取器」對話方塊選擇 description 欄位,然後從「索引類型」下拉式清單中選擇「FULLTEXT」來加入全文索引:

請確保「索引方法」保持為空白。

按一下「儲存」按鈕以建立新的索引:

總結

現在,我們已經準備了資料庫,我們將在第 2 部分中學習如何使用全文檢索搜尋功能。

對 Navicat for MySQL 感興趣嗎?你可以免費試用 14 天以進行評估。

Navicat 文章
頻道記錄
分享
部落格封存檔