• 技术文章 >后端开发 >php教程

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

    PHP中文网PHP中文网2016-05-16 20:27:15原创493
    这篇文章主要介绍了php利用scws实现mysql全文搜索功能的方法,可通过scws分词插件的扩展来实现MySQL全文搜索功能,是非常实用的技巧,需要的朋友可以参考下

    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP中mysqli_affected_rows作用行数返回值分析_php技巧 下一篇:php使用PDO方法详解_php技巧
    Web大前端开发直播班

    相关文章推荐

    • php依赖注入总结分享• php入门教程 精简版_PHP教程• Yii学习总结之安装配置_PHP• PHP不用递归实现无限分级的例子分享_PHP• 注册页面之前先验证用户名是否存在的php代码_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网