《2022年PHP+MYSQL+SCWS做自己的站内搜索引擎 .pdf》由会员分享,可在线阅读,更多相关《2022年PHP+MYSQL+SCWS做自己的站内搜索引擎 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PHP+MYSQL+SCWS 做自己的站内搜索引擎天底下竟然有这么一种站内搜索引擎,它支持中文分词,支持全文搜索,无须任何扩展,不用对服务器进行任何设置,只要支持PHP 和 MYSQL 就行 ,他操作简单,效率高 ,效果好 .这就是PHP+MYSQL+SCWS 站内搜索引擎 . 事实上 ,无论大小 ,从新浪到爱卡汽车网,从日 PV过亿的网站到我自己的个人博客,都需要站内搜索引擎 .站内搜索引擎对于网站的作用,是不言而喻的.最直接的作用是让用户以最直接的方式 ,最快的速度在你的网站里找到他想要的东西.而不是再到百度谷歌去,搜索到别人的网站. (一) 最基本的站内搜素利用SQL的 LIKE 例如1
2、 SELECT * FROM bbs_threads WHERE subject LIKE %搜索引擎 % LIMIT 10 优点 :太容易了 ,是人都会缺点 : 1. 每次执行LIKE语句都需要一次表遍历,用的是字符串比较,效率太低 . 2. 不能分词 ,只能整句话搜索.如果搜索词较长,几乎搜索不出任何结果.如果加上分词功能,相当于一条语句里使用好几个LIKE, 同 1. (二) 谷歌自定义搜索利 用 谷 歌 搜 索 引 擎API 以 及 谷 歌 强 大 的 搜 索 功 能 ,建 立 自 己 的 站 内 搜 索 . 演 示 : http:/ &sa=搜索 &siteurl= 优点 : 省心
3、,没有比这个再省心的了.你啥都不用管.谷歌都是自家的了,人家的搜索算法,那怎么是咱们能比得了的呢. 缺点 : 1.需要使用IFRAME,或者直接打开谷歌的页面,或者用更复杂的API 来实现 . 2.只能按照文本搜索 ,只能全站搜索.我要想在某个频道下,搜索指定类型的文章等要求谷歌就不能实现了.一句话 ,就是不能自定义. 3.如果你的网站小,谷歌人家都不带收录你,啥也搜不出来你咋办? (三) lucene 全世界最好的开放源代码搜索引擎呃没啥好介绍的,直接看优缺点吧优点 : 完全开放源代码,完全可以自定义,完全 . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
4、 - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 缺点 : java 写的 ,哥不会 .你会 java?你改个试试(四) PHP+MYSQL+SCWS 做自己的站内搜索引擎千呼万唤始出来! MySQL支持全文索引和搜索。全文索引在MySQL 中是一个FULLTEXT 类型索引。 FULLTEXT 索引用于MyISAM 表,可以在CREATE TABLE 时或之后使用ALTER TABLE 或 CREATE INDEX 在 CHAR 、VARCHAR 或 TEXT 列上创建。函数MATCH() 对照一个文本集(
5、包含在一个FULLTEXT 索引中的一个或多个列的列集)执行一个自然语言搜索一个字符串。搜索字符串做为AGAINST() 的参数被给定。搜索以忽略字母大小写的方式执行。对于表中的每个记录行,MATCH() 返回一个相关性值。即,在搜索字符串与记录行在MATCH() 列表中指定的列的文本之间的相似性尺度。当 MATCH() 被使用在一个WHERE 子句中时,返回的记录行被自动地以相关性从高到低的次序排序。相关性值是非负的浮点数字。零相关性意味着不相似。在英语环境下 ,使用 PHP和 MYSQL就完全能够建立全文检索环境.步骤为 : 1. 建立内容表 ,灌入数据 ,在需要全文检索的字段上建立FUL
6、LTEXT 索引2. 利用 MATCH函数执行搜索条件3. 处理返回的数据,显示结果简单吧。 。问题是 ,中文不是自分词的语言,在 MYSQL开来一大段中文就是一个单词,全文检索就失效了.解决这个问题的办法是,在灌入数据和搜索前,利用其他的工具来进行分词,将大段的中文分隔为一个一个的词,类似与英文的单词. 最简单的工具就是SCWS. 官方站点 : http:/ SCWS 是 Simple Chinese Words Segmentation 的缩写,即简易中文分词系统。这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。词是汉语的基本语素单位,而书写的时候不像英语会在
7、词之间用空格分开,所以如何准确而又快速的分词一直是中文分词的攻关难点。SCWS 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在90% 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。SCWS 采用纯C 代码开发,以名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - Unix-Like OS 为主要平台环境,提供共享函数库,方便植
8、入各种现有软件系统。此外它支持GBK ,UTF-8,BIG5 等汉字编码,切词效率高。SCWS提供了纯PHP 代码编写的中文分词类,使它不需要做任何额外的扩展就能在机会所有的服务器上使用. 支持中文的基于PHP+MYSQL 的全文检索的步骤为: 1. 建立内容表 (,将数据分词 ),灌入数据 ,在需要全文检索的字段上建立FULLTEXT 索引2. (将要搜索的内容先分词再) 利用 MATCH函数执行搜索条件3. 处理返回的数据,显示结果仍然是 SO EASY! 一个演示的例子: http:/ 执行搜索的语句是: 1 SELECT SQL_CALC_FOUND_ROWS *, MATCH (ti
9、tlewords, keywords, author, contentwords) AGAINST ($words) AS matchscore 2 FROM search 3 WHERE MATCH (titlewords, keywords, author, contentwords) AGAINST ($words) 0.5 4 LIMIT 10 最后 : 感谢全世界的开源作者名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -