PHP实现中文全文搜索的原理介绍
Posted php中文网最新课程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP实现中文全文搜索的原理介绍相关的知识,希望对你有一定的参考价值。
源 / php中文网 源 / www.php.cn
一般的开发中的相关文章或内容都是通过关键词标签、标题来实现相关搜索的,但这样是搜索基本会使用低效的like语句,由于效率低下在稍微大一点的项目开发中我们无法进行文章或者相关内容的详情字段搜索(服务器压力过大、效率极低)。
常见的解决方案
1、sphinx+coreseek
优点:技术成熟、稳定
缺点:sphinx不支持中文coressk目前已经停止维护【如果是纯英文环境sphinx极佳】
2、迅搜(Xunsearch)
优点:技术成熟、稳定
缺点:安装过程复杂,配置不够灵活
3、mysql全文搜索
有点:安装方便、效率高
缺点:对中文支持不够好
来自hcoder的解决方案(分词+自主配置)
优点:安装简单(php组件)、底层由开发者自行编写更清晰底层、更容易的优化
缺点:需要开发者有php+mysql基础,需要自己编写整个过程的代码
1 2 3 4 |
|
使用到的第三方组件(scws)
1 |
|
SCWS是SimpleChineseWordSegmentation的首字母缩写(即:简易中文分词系统)。
这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词。词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开,所以如何准确并快速分词一直是中文分词的攻关难点。
SCWS采用纯C语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序,支持的中文编码包括GBK、UTF-8等。此外还提供了PHP扩展模块,可在PHP中快速而方便地使用分词功能。
分词算法上并无太多创新成分,采用的是自己采集的词频词典,并辅以一定的专有名称,人名,地名,数字年代等规则识别来达到基本分词,经小范围测试准确率在90%~95%之间,基本上能满足一些小型搜索引擎、关键字提取等场合运用。首次雏形版本发布于2005年底。
SCWS由hightman开发,并以BSD许可协议开源发布,源码托管在github。
-END-
声明:本文选自「 php中文网 」,搜索「 phpcnnew 」即可关注!
▼请点击下方:“阅读原文”,在线查看全部文章内容!
以上是关于PHP实现中文全文搜索的原理介绍的主要内容,如果未能解决你的问题,请参考以下文章