php实现scws中文分词搜索的方法介绍
这篇文章主要介绍了php实现scws中文分词搜索的方法,详细介绍了scws中文分词搜索的具体步骤与相关使用技巧,并提供了scws的本站下载地址,需要的朋友可以参考下
本文实例讲述了php实现scws中文分词搜索的方法。分享给大家供大家参考,具体如下:
1、4个文件(本站下载地址。
)解压后,放到一个地方 eg:E:/wamp/scws
2、php.ini 中配置
extension = php_scws.dll scws.default.charset = utf8 //配置默认的编码方式 scws.default.fpath = "E:/wamp/scws" //加压后文件的路径
登录后复制
3、使用
$so = scws_new(); $so->set_charset('utf8'); //编码 // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 $so->add_dict(ini_get('scws.default.fpath') . '/dict.utf8.xdb'); //$so->add_dict('./dd.txt',SCWS_XDICT_TXT); $so->set_rule(ini_get('scws.default.fpath') . '/rules.utf8.ini'); $so->set_duality(0); //散字二元 $so->set_ignore(0); //忽略标点符号 $so->set_multi(0); $wd='要搜索的内容'; $so->send_text($wd); while($tmp = $so->get_result()) //遍历后即得到字符串分割后的内容, //根据得到的内容分别到数据库中查找(like匹配) { }
登录后复制
亲自试验了一下如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test</title> </head> <body> <?php function search($keywords,$table,$key1,$key2){ // (要查找的字符串,表名,字段一,字段二)如果就一个字段的话,$key2=''; $arr=array(); $str=array(); if( preg_match("/^[^\x80-\xff]+$/", $keywords)){//判断keywords是否全为英文,全为英文的话按照字符串切割处理 $str1=explode(' ',$keywords); //先按照空格切割 foreach($str1 as $key=>$value) { $str2=explode(',',$value); //,切割 foreach($str2 as $k=>$v) { $str3=explode('.',$v); //。切割 foreach($str3 as $kk=>$vv) { array_push($arr,$vv);//处理完后,返回一个数组 } } } }else{//对中文的分词处理 $so = scws_new(); $so->set_charset('utf8'); // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 $so->add_dict(ini_get('scws.default.fpath') . '/dict.utf8.xdb'); $so->set_rule(ini_get('scws.default.fpath') . '/rules.utf8.ini'); $so->set_duality(0); //散字二元 $so->set_ignore(0); //忽略标点符号 $so->set_multi(0); $so->send_text($keywords); while ($tmp = $so->get_result())//得到一个数组,里面包含词组和标点符号 { foreach($tmp as $key=>$value) { $value=$value["word"]; if(preg_match("/^[一-龥]{6,21}$/", $value))//去除标点符号 { array_push($arr,$value); } } } } foreach($arr as $key=>$value)//便利得到的数组,到数据库中匹配 { if($key2!='') { $sql="select * from `$table` where `$key1` like '%$value%' or `$key2` like '%$value%'"; }else{ $sql="select * from `$table` where `$key1` like '%$value%'"; } $query=mysql_query($sql); array_push($str,$query); } return $str; } include('conn.php'); $keywords="哈哈lsd djk,hdjs dd"; $table='two_key'; $key1='address'; $key2=''; $query=search($keywords,$table,$key1,$key2); foreach($query as $key=>$value) { while($row=mysql_fetch_array($value)) { echo $row[id].'----'.$row[name].'-----'.$row[address].'<br>'; } } ?> </body> </html>
登录后复制
以上就是php实现scws中文分词搜索的方法介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
1 个月前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
1 个月前
By DDD
R.E.P.O.最佳图形设置
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu
