Navicat for MySQL,mysql scws_php利用scws實現mysql全文搜索功能的方法

 2023-10-04 阅读 28 评论 0

摘要:本文實例講述了php利用scws實現mysql全文搜索功能的方法。分享給大家供大家參考。具體方法如下:scws這樣的中文分詞插件比較不錯,簡單的學習了一下,它包涵一些專有名稱、人名、地名、數字年代等規則集合,可以直接將語句按這些規則分開成一個一個關鍵詞,準確率在90%-95%

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

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

1) 修改 php 擴展代碼以兼容支持 php 5.4.x

Navicat for MySQL、2) 修正 php 擴展中 scws_get_tops 的 limit 參數不允許少于 10 的問題

3) libscws 增加 scws_fork() 從既有的 scws 實例產生分支并共享詞典/規則集,主要用于多線程開發.

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

PHP實例代碼如下:

MySQL server。//實例化分詞插件核心類

$so = scws_new();

//設置分詞時所用編碼

$so->set_charset('utf-8');

mysql、//設置分詞所用詞典(此處使用utf8的詞典)

$so->set_dict('/path/dict.utf8.xdb');

//設置分詞所用規則

$so->set_rule('/path/rules.utf8.ini ');

php如何連接mysql數據庫?//分詞前去掉標點符號

$so->set_ignore(true);

//是否復式分割,如“中國人”返回“中國+人+中國人”三個詞。

$so->set_multi(true);

php讀取數據庫?//設定將文字自動以二字分詞法聚合

$so->set_duality(true);

//要進行分詞的語句

$so->send_text(“歡迎來到火星時代IT開發”);

php讀取mysql?//獲取分詞結果,如果提取高頻詞用get_tops方法

while ($tmp = $so->get_result())

{

print_r($tmp);

php連接mysql實例、}

$so->close();

?>

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

MySQL source,版本列表

版本 類型 平臺 性能 其它

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%,

希望本文所述對大家的php程序設計有所幫助。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/113028.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息