php利用scws实现mysql全文搜索功能的方法


Posted in PHP onDecember 25, 2014

本文实例讲述了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%,

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
php 调用远程url的六种方法小结
Nov 02 PHP
PHP中session变量的销毁
Feb 27 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
PHP实现图片上传并压缩
Dec 22 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
php封装的验证码类分享
Feb 26 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
php中heredoc与nowdoc介绍
Dec 25 #PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 #PHP
推荐5款跨平台的PHP编辑器
Dec 25 #PHP
主流PHP框架的优缺点对比分析
Dec 25 #PHP
10个简化PHP开发的工具
Dec 25 #PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 #PHP
PHP中文编码小技巧
Dec 25 #PHP
You might like
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
js css自定义分页效果
2017/02/24 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
Python之父谈Python的未来形式
2016/07/01 Python
解决Python二维数组赋值问题
2019/11/28 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
远程调用的原理
2014/07/05 面试题
二年级体育教学反思
2014/01/15 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
经验交流材料格式
2014/12/30 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python