MySQL中文全文索引的mysqlcft外掛程式(1/5)

來源:互聯網
上載者:User

MySQL中文全文索引外掛程式mysqlcft的特點:
  1、優點:
  ①、精準度很高:採用自創的“三位元組交叉切分演算法”,對中文語句進行分割,無中文分詞詞庫,搜尋精準度遠比中文分詞演算法高,能達到LIKE '%...%"的準確率。
  ②、查詢速度快:查詢速度比LIKE '%...%"搜尋快3~50倍,文章末尾有測試結果;
  ③、標準外掛程式式:以MySQL 5.1全文索引的標準外掛程式形式開發,不修改MySQL原始碼,不影響MySQL的其他功能,可快速跟進MySQL新版本;
  ④、支援版本多:支援所有的MySQL 5.1 Release Candidate版本,即MySQL 5.1.22 RC~最新的MySQL 5.1.25 RC;
  ⑤、支援字元集:支援包括GBK、GB2312、UTF-8、Latin1、BIG5在內的MySQL字元集(其他字元集沒有測試過);
  ⑥、系統相容好:具有i386和x86_64兩個版本,支援32位(i386)和64位(x86_64)CPU及Linux系統;
  ⑦、適合分布式:非常適合MySQL Slave分布式系統架構,無詞庫維護成本,不存在詞庫同步問題。

  2、缺點:
  ①、mysqlcft中文全文索引只適用於MyISAM表,因為MySQL只支援對MyISAM表建立FULLTEXT索引;
  ②、MySQL不能靜態編譯安裝,否則無法安裝mysqlcft外掛程式;
  ③、基於“三位元組交叉切分演算法”的索引檔案會比海量、ft-hightman等基於“中文分詞演算法”的索引檔案稍大,但不是大很多。根據我的測試,mysqlcft全文索引的.MYI索引檔案是.MYD資料檔案的2~5倍。


  二、mysqlcft的核心思想──“三位元組交叉切分演算法”

  

  註:本文以0~7數字序號代表“英文”、“數字”和“半個漢字”,以便說明。
  1、按三位元組對中文語句進行切分,建立全文索引:
  例如:“全文索引”或“1台x光機”四個字會被交叉分拆為6份,建立反向索引:
  012  123  234  345  456  567

  2、按三位元組對搜尋的關鍵字進行切分,在全文索引中找出對應資訊:
  例①:搜尋索引鍵“文索”,用數字序號表示就是“2~5”,那麼它將被切分成:
  234  345
  這樣,就與全文索引對上了。

  例②:搜尋索引鍵“x光機”,用數字序號表示就是“3~7”,那麼它將被切分成:
  345  456  567
  這樣,也與全文索引對上了。

  例③:搜尋索引鍵“1台 光機”,用數字序號表示就是“0~2”和“4~7”,那麼它將被切分成:
  012  456  567
  這樣,多關鍵字搜尋也與全文索引對上了。

首頁 1 2 3 4 5 末頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.