程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 利用scws實現mysql全文搜索功能

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

編輯:關於PHP編程

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
//實例化分詞插件核心類
$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%,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved