稍為介紹一下 Mroonga (支援 MySQL 中日韓全文搜尋)

前幾天 , 碰巧於 TWPUG 論壇參予以下這則討論 , 主要是針對 MySQL 中文的 FullText 問題

http://twpug.net/modules/newbb/viewtopic.php?start=0&topic_id=6669&viewmode=flat&order=ASC&type=&mode=0

我推薦了我自己 Blog 上寫的 Bigram 解決法 , 這 Bigram 解決法可以大幅改善用 SELECT ... LIKE 的效能問題 , 不過 Bigram 的大問題是更新索引比較慢 , 雖是即時的 , 但如果隨著資料量越來越大 , 仍會肉眼感覺出更新很龜速 , 很久沒去碰這類問題 , 畢竟近來無大專案可做 , 參予討論後 , 也順變去找一下是否有比較新的關於中文全文索引的解決方案 , 於是找到了 Mroonga , 當初是知道有這東西的 , 不過那時候還尚未去注意 , 在本人慣用的 MariaDb 官方網站也有說明 will be included in the future MariaDB 5.3 release.

這句話我一直映在腦海 , 畢竟當時的環境 , 要搞定這個東西和搞定 Sphinx 一樣麻煩 , 想說等吧 , 看 MariaDB 內建再說 , 直至今日 MariaDB 5.5 , 尚未內建 , 雖然沒內建 , 但還是可以自己編譯 Mroonga 和 MariaDB 使用 ~

 

好吧 , 回到 Mroonga 官方網站看看變化 , 似乎各 OS (除了 Windows) 都支援了 , 而且各安裝法都有介紹 , 這裡我不打算介紹怎麼裝 , 只是覺得這東西真的越來越讚了 , 經過測試 , 效能很棒就是了。

Mroonga 純粹是一個 MySQL Server 外掛 , 命名為 Mroonga 應該是和 Groonga 這個專案有關 , 就是把 G 改成 MySQL 的 M , 基本上 Mroonga 會用到 Groonga 這個全文搜尋引擎的 Lib , 所以這部份做的方式有點類似 Sphinx , 但對於我們程式設計師來說 , Mroonga 在使用的時候就如同先前介紹的 Bigram 一樣 , 下 SQL 命令是依照標準 MySQL 的指令的 , 也就是 SELECT ... MATCH .. AGAINST , 這樣應該比較好用吧 , 同時 Mroonga 也是即時性索引的 。所以對於程式設計架構來說不至於有很大的變更,真心推薦各位使用。

發佈留言