PHP实现中文全文搜索的原理介绍
内容导读
收集整理的这篇技术教程文章主要介绍了PHP实现中文全文搜索的原理介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1739字,纯文字阅读大概需要3分钟。
内容图文
一般的开发中的相关文章或内容都是通过关键词标签、标题来实现相关搜索的,但这样是搜索基本会使用低效的like语句,由于效率低下在稍微大一点的项目开发中我们无法进行文章或者相关内容的详情字段搜索(服务器压力过大、效率极低)。常见的解决方案
1、sphinx + coreseek
优点 : 技术成熟、稳定
缺点 : sphinx 不支持中文 coressk 目前已经停止维护【如果是纯英文环境 sphinx 极佳】
2、迅搜(Xunsearch)
优点 : 技术成熟、稳定
缺点 : 安装过程复杂,配置不够灵活
3、mysql 全文搜索
有点:安装方便、效率高
缺点:对中文支持不够好
来自hcoder的解决方案 (分词 + 自主配置)
优点 : 安装简单(php 组件)、底层由开发者自行编写更清晰底层、更容易的优化
缺点 : 需要开发者有 php + mysql 基础,需要自己编写整个过程的代码
原理
1、获取词语环节文章数据表 -> 逐行读取文章信息 -> 组合所有文字内容 -> 分词、去重 -> 记录到新的数据表2、搜索环节搜索关键字记录表 -> 合并文章数据 -> 去重 -> 展示数据
使用到的第三方组件(scws)
http://www.xunsearch.com/scws/
SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)。
这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词。 词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开, 所以如何准确并快速分词一直是中文分词的攻关难点。
SCWS 采用纯 C 语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序, 支持的中文编码包括 GBK、UTF-8 等。此外还提供了 PHP 扩展模块, 可在 PHP 中快速而方便地使用分词功能。
分词算法上并无太多创新成分,采用的是自己采集的词频词典,并辅以一定的专有名称,人名,地名, 数字年代等规则识别来达到基本分词,经小范围测试准确率在 90% ~ 95% 之间, 基本上能满足一些小型搜索引擎、关键字提取等场合运用。首次雏形版本发布于 2005 年底。
SCWS 由 hightman 开发, 并以 BSD 许可协议开源发布,源码托管在 github。
以上就是PHP实现中文全文搜索的原理介绍的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的PHP实现中文全文搜索的原理介绍全部内容,希望文章能够帮你解决PHP实现中文全文搜索的原理介绍所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。