MySQL 安裝 bi-gram 做 Fulltext Search

於 MySQL 5.5、5.6 的版本,想要靠 MySQL 本身的 MyISAM 做 Fulltext search,需要搭配 Bigram 的套件

  • 註1:此篇文章的環境是 Debian jessie 預設的 MySQL 5.5 版
  • 註2:Percona 預設有啟用 ngram,就不需要另外安裝 bigram

MySQL 安裝 bi-gram 做 Fulltext Search

想知道目前安裝的版本是否已經內建 bigram,可以進入 MySQL 直接查詢或載入看看

  1. mysql -u root -p
  2. show plugins # 查查看
  3. install plugin bigram soname 'libftbigram.so'; # 直接載入看看
  4. 若都沒有就需要下述步驟~
  5. mysqlftppc-bigram 的 Source code: y-ken/mysqlftppc-bigram: It's mysqlftppc-bigram-1.6.1 fork repository which has get compatible with MySQL-5.5 and MySQL-5.6
  6. This plugin implements bi-gram tokenizer. As of MySQL SQL syntax, you can query in natural langauge mode or in boolean mode.

要編譯 mysqlftppc-bigram 需要 mysql_config,需要分別安裝下述套件:

安裝、編譯 bigram 步驟

  1. git clone https://github.com/y-ken/mysqlftppc-bigram
  2. cd mysqlftppc-bigram # 可查看 INSTALL
  3. aclocal
  4. libtoolize --automake
  5. automake --add-missing
  6. automake
  7. autoconf
  8. ./configure --with-mysql-config=/usr/bin/mysql_config
  9. make
  10. sudo make install # /usr/lib/mysql/plugin/libftbigram.so,到此編譯安裝完成

啟用 bigram plugin

  1. mysql -u root -p
  2. install plugin bigram soname 'libftbigram.so';
  3. show plugins; # 會看到 bigram | ACTIVE | FTPARSER | libftbigram.so

欄位加上 bigram 的 Parser

  1. mysql -u root -p
  2. ALTER TABLE column_name ADD FULLTEXT(title, description) WITH PARSER bigram;
  3. 註:Percona 內建的 ngram,上面語法最後要改成 WITH PARSER ngram;

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料