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
 //实例化分词插件核心类
$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扩展库          indows/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%,

更多详细内容请查看:http://www.111cn.net/phper/php-database/44996.htm

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值