MySQL 的 Full-text Search

MySQL 使用 Full-text Search (全文檢索), MySQL 會自動為資料建立索引, 及在資料變更時重新建立索引。以前 Full-text Search 只支援 MyISAM, 並不支援 InnoDB, 由 MySQL 5.6 開始 InnoDB 及 MyISAM 也都支援 Full-text Search 了, 支援的欄位類型有 CHAR, VARCHAR 及 TEXT。

MySQL 在建立資料表時可以用 FULLTEXT 定義索引, 如果現有資料表上, 也可以用 ALTER TABLE 或者 CREATE INDEX 完成。

以下是在 MySQL 建立資料表時用 FULLTEXT 定義索引的例子:


上面建立的 table_name 資料表, 用 FULLTEXT 建立 title 及 content 欄位的全文索引, 欄位與欄位之間用逗號分隔。

在現在資料表上要定義全文索引, 可以用 ALTER TABLE 或 CREATE INDEX, 以下是 ALTER TABLE 的用法:

ALTER TABLE table_name ADD FULLTEXT(title,content);

上面會在 table_name 資料表加入 title 及 content 欄位的全文索引。

至於要移除全文索引, 可以用 DROP INDEX 語句, 例如:

ALTER TABLE table_name DROP INDEX title;

以上會移除 table_name 資料表的 title 索引。


Leave a Reply