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

本文比较了酸和基本数据库模型,详细介绍了它们的特征和适当的用例。酸优先确定数据完整性和一致性,适合财务和电子商务应用程序,而基础则侧重于可用性和

本文讨论了确保PHP文件上传的确保,以防止诸如代码注入之类的漏洞。它专注于文件类型验证,安全存储和错误处理以增强应用程序安全性。

本文讨论了在PHP中实施API速率限制的策略,包括诸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之类的库。它还涵盖监视,动态调整速率限制和手

本文讨论了使用password_hash和pyspasswify在PHP中使用密码的好处。主要论点是,这些功能通过自动盐,强大的哈希算法和SECH来增强密码保护

本文讨论了OWASP在PHP和缓解策略中的十大漏洞。关键问题包括注射,验证损坏和XSS,并提供用于监视和保护PHP应用程序的推荐工具。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

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