php 利用scws實現mysql全文檢索搜尋功能

來源:互聯網
上載者:User
這篇文章主要介紹了php利用scws實現mysql全文檢索搜尋功能的方法,可通過scws分詞外掛程式的擴充來實現MySQL全文檢索搜尋功能,是非常實用的技巧,需要的朋友可以參考下

本文執行個體講述了php利用scws實現mysql全文檢索搜尋功能的方法。分享給大家供大家參考。具體方法如下:

scws這樣的中文分詞外掛程式比較不錯,簡單的學習了一下,它包涵一些專有名稱、人名、地名、數字年代等規則集合,可以直接將語句按這些規則分開成一個一個關鍵詞,準確率在90%-95%之間,按照安裝說明把scws的擴充放入php的擴充目錄裡,下載規則檔案和詞典檔案,並在php設定檔中引用它們,就可以用scws進行分詞了.

1) 修改 php 擴充代碼以相容支援 php 5.4.x

2) 修正 php 擴充中 scws_get_tops 的 limit 參數不允許少於 10 的問題

3) libscws 增加 scws_fork() 從既有的 scws 執行個體產生分支並共用詞典/規則集,主要用於多線程開發.

4) 新增部分版本的 win32 的 dll 擴充

PHP執行個體代碼如下:

代碼如下:

<?php //執行個體化分詞外掛程式核心類 $so = scws_new(); //設定分詞時所用編碼 $so->set_charset('utf-8'); //設定分詞所用詞典(此處使用utf8的詞典) $so->set_dict('/path/dict.utf8.xdb'); //設定分詞所用規則 $so->set_rule('/path/rules.utf8.ini '); //分詞前去掉標點符號 $so->set_ignore(true); //是否複式分割,如“中國人”返回“中國+人+中國人”三個詞。 $so->set_multi(true); //設定將文字自動以二字分詞法彙總 $so->set_duality(true); //要進行分詞的語句 $so->send_text(“歡迎來到火星時代IT開發”); //擷取分詞結果,如果提取高頻詞用get_tops方法 while ($tmp = $so->get_result()) {   print_r($tmp); } $so->close(); ?>


注:如以上例子,輸入的文字,詞典,規則檔案這三者的字元集必須統一,另外mysql 4.XX有的是不支援中文全文檢索搜尋的,可以存入關鍵字對應的區位碼以方便全文檢索搜尋.

版本列表

版本 類型 平台 效能 其它

SCWS-1.1.x C 代碼 *Unix*/*PHP* 準確: 95%, 召回: 91%, 速度: 1.2MB/sec

PHP擴充分詞速度: 250KB/sec [下載] [文檔] [安裝說明]

php_scws.dll(1) PHP擴充庫 Windows/PHP 4.4.x 準確: 95%, 召回: 91%,

php_scws.dll(2) PHP擴充庫 Windows/PHP 5.2.x 準確: 95%, 召回: 91%,

php_scws.dll(3) PHP擴充庫 Windows/PHP 5.3.x 準確: 95%, 召回: 91%,

php_scws.dll(4) PHP擴充庫 Windows/PHP 5.4.x 準確: 95%, 召回: 91%,

PSCWS23 PHP原始碼 不限 (不支援UTF-8) 準確: 93%, 召回: 89%,

PSCWS4 PHP原始碼 不限 準確: 95%, 召回: 91%,

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.