设为首页
收藏本站
最近更新

文章搜索
本类热门

首页 >> 网络编程 >> PHP >> PHP教程 >> 新闻正文 [字体: ] [打印文档]
LINUX环境中用PHP构建网站:搜索引擎的实现

文章作者:
责任编辑:rosan 录入时间:2007-1-22 23:49:18 来源:
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意.

百特科技[http://www.PCbyte.cn]专业的空间、主机提供商,域名注册绝对优惠!
  能够拥有强大的搜索引擎是每个网站的心愿,而一个强大的搜索引擎的制作又是相当复杂和困难的,它涉及到效率,准确性和速度等诸多方面.
  
  这里介绍的搜索引擎不会涉及到这么深的研究,只是针对特定的内容进行精确的查询.
  
  一个功能复杂而强大的搜索引擎要用到很多的程序和数据库技巧,我们就先从简单的搜索引擎开始介绍.
  
  搜索引擎的工作状况是怎样的呢?它接收给出的关键字,然后在给出的范围内进行搜索,然后将搜索的结果返回.
  
  给出的关键字可能在信息内容的任何位置,引擎又是如何进行查找的呢?在这要用到如下的数据库语句:
  
  select * from table where (name like '%".$keyword."%');
  
  name 是查找的具体位置,一般放字段名,like '%".$keyword."%' 是模式匹配,就是在内容中查找有无 $keyword.看个例子:
  
  在数据表 news 查找包含关键字 good 的所有标题:
  
  select * from news where (title like '%good%');
  
  这是个精确查找,能够在数据库内找出所有带 good 的 title 出来,还有一种模糊查找:
  
  select * from news where (title like '%good');
  
  这样也可查找出结果.
  
  假设 news 里包含 title(标题),message(内容),user(用户) 等的字段,上面的查找范围就太狭窄了,因为只对 title 进行了查找,要对其它内容进行查找又不想操作太复杂该如何处理呢?
  
  我们注意到在程序里任何变动的值都用变量来进行处理,在这这个方法一样行得通,可将想要搜索的范围作为变量进行传送,这样就有如下的数据库语法了:
  
  mysql_query("select * from news where ($name like '%".$keyword."%'));
  
  $name 存放的就是传送过来的字段变量的值,而这种可变的值通过 html 的 select 下拉提交表单来完成.
  
  如果想要将搜索结果限制在一定的时间范围内又该如何实现呢?如想要查找 5 天之内的信息.还记得曾在 cookie 介绍中用到的数据库语法吗?
  对了,该联合的语法如下:
  
  mysql_query("select * from news where ($name like
  '%".$keyword."%') and time>date_sub('$time',interval 5 day)");
  
  其中 $time 为查找的现在时间:$time=date('Y-m-d H:i:s'); time 是数据库存储信息时间的字段.
  
  现在将 $old 来代替 5:
  
  mysql_query("select * from news where ($name like
  '%".$keyword."%') and time>date_sub('$time',interval $old day)");
  
  同样 $old 的值通过 select 提交表单将限定的不同时间提交过来,便完成了这个颇为强大的搜索引擎.www.xker.com()
  
  一些更为强大的搜索引擎需要程序技巧上的配合,读者可通过以上的原理自行扩展试验.
推荐好友 | 频道收藏 | 打印文档 | 报告错误  
相关连接
·打造简单的PHP&MYSQL留言板[1]
·LINUX环境中用PHP构建网站:用递归函数写论坛
·LINUX环境中用PHP构建网站:用户的登入认证
·LINUX环境中用PHP够建网站:新闻发布系统
·LINUX环境中用PHP构建网站:搜索引擎的实现
·电子邮局PHP应用篇——POP3邮件的收取(二)
·电子邮局PHP应用篇——POP3邮件的收取(一)
·PHP的应用——聊天室开发完全手册(三)
同一专题
·无相关专题
发表评论 版权声明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有
转载
要求转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
共有评论查看评论
姓名: