新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 编程开发 > PHP教程 > 正文

LINUX环境中用PHP构建网站:搜索引擎的实现

XKER.COM   2006-10-28 8:43:30  来源:互联网  点击:

  能够拥有强大的搜索引擎是每个网站的心愿,而一个强大的搜索引擎的制作又是相当复杂和困难的,它涉及到效率,准确性和速度等诸多方面.
  
  这里介绍的搜索引擎不会涉及到这么深的研究,只是针对特定的内容进行精确的查询.
  
  一个功能复杂而强大的搜索引擎要用到很多的程序和数据库技巧,我们就先从简单的搜索引擎开始介绍.
  
  搜索引擎的工作状况是怎样的呢?它接收给出的关键字,然后在给出的范围内进行搜索,然后将搜索的结果返回.
  
  给出的关键字可能在信息内容的任何位置,引擎又是如何进行查找的呢?在这要用到如下的数据库语句:
  
  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中英文混合排版中处理字符串常用的函数
下一篇教程:LINUX环境中用PHP够建网站:新闻发布系统
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·电子邮局PHP应用篇——POP3邮件的收取(二)·电子邮局PHP应用篇——POP3邮件的收取(一) 
·PHP的应用——聊天室开发完全手册(三)·PHP的应用——聊天室开发完全手册(二) 
·PHP的应用——聊天室开发完全手册(一)·LINUX环境中用PHP构建网站:用递归函数写论坛
·LINUX环境中用PHP构建网站:用户的登入认证·LINUX环境中用PHP够建网站:新闻发布系统
·用 Oracle AS 10g 为PHP提供的一次性登录·PHP中英文混合排版中处理字符串常用的函数
·多个字段,大量记录的插入操作技巧(PHP)·用PHP构建一个简易监视引擎
·php高手进阶:写一个用户在线显示的程序·在PHP开发过程中实现验证码一法
·在PHP中实现文件的上传功能·Linux下用PHP4连接ORACLE8I的方法

学院文章搜索
  
推荐文章
·嵌入式Linux操作系统启动信
·网页设计配色应用实例剖析
·如何安全安装Vista系统
·Photoshop巧绘制非洲菊
·简简单单用软件给MP3掐头去
·ASP初学者常用源代码总结篇
·利用异常表处理Linux内核态
·Linux命令行下如何配置nVI
·如何实现Linux与windows的
·秘籍:右键菜单终极锤炼术
阅读排行
·免费代理IP(每日更新)
·流氓网站招招看 详细剖析恶
·轻松恢复硬盘数据 EasyRec
·DOS下对系统重新进行分区
·清除猖狂的Sxs.exe病毒
·DOS常用命令
·编程过把瘾:自己动手写操
·windows下如何修改右键菜单
·DOS下常用的相关网络命令
·SQL Server安装文件挂起错
专题教程
·MySQL 专题
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
·电脑技巧 专题
最新文章
·电子邮局PHP应用篇——POP
·电子邮局PHP应用篇——POP
·PHP的应用——聊天室开发完
·PHP的应用——聊天室开发完
·PHP的应用——聊天室开发完
·LINUX环境中用PHP构建网站
·LINUX环境中用PHP构建网站
·LINUX环境中用PHP够建网站
·LINUX环境中用PHP构建网站
·用 Oracle AS 10g 为PHP提
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有