您的位置:首页精文荟萃软件资讯 → 用ASP做全文检索

用ASP做全文检索

时间:2004/10/7 18:18:00来源:本站整理作者:蓝点我要评论(0)

摘要:通过词句查找相关的全文是浏览器端常用的方法,ASP类似于CGI,也可以进行简单的文本方式全文检索 

  在Internet/Intranet上对某类信息做详细浏览和全文检索也是常碰到的情况。ASP是微软公司开发的用于制作动态Web页的一种服务器端脚本型式(或曰编写环境)。它使用VBScript或JavaScript等简易的脚本语言,集成在HTML码中,在服务器端响应浏览器端请求而执行数据访问和过程(或对象)调用并产生浏览器端执行的脚本语言。本文介绍用ASP编写全文检索代码的方法。 

方法介绍: 
  确定被检索的文件。将它们保存在同一文件夹中。文件的类型可以是任何文本类型(包括.htm网页文件类型) 
  建立被检索文件的信息库。其中主要包含文件名,文件标题等。 
  用ADO方式访问数据库。建立记录集对象。 
  逐个打开记录集中当前记录所指向的文件。用查找的字串对文件的全文本进行匹配比较。 
  将符合条件的文件标题输出到客户端Web页,并加入指向该文件的超链,以供用户选择浏览。 
  技术要点: 
  数据源。要在创建脚本之前,利用Windows95控制面板中的ODBC指定要访问的数据库及其驱动程序,以数据源名(DSN)标识之。 
  匹配字串的长度。由于浏览器端的数据经过编码传到服务器端,ASP通过其内建对象Request取得的数据也并非完全是用户输入的有用信息 
,所以要加以处理。可以在输入字串后附加一标志字符(如#或chr(7))。本文则采取另一种方法,即计算有效信息的长度。从而截取所需的 
字串。 
  创建脚本的文件系统对象Scripting.FileSystemObject,从而打开文本流以读入。 
  特点: 
  直接对.htm文件进行全文检索,省却许多转换过程。.htm文件又用于网页的显示,一举两得。 
  应用ASP,简单明了,易于实现。 
  本例ASP代码: 
  〈%@LANGUAGE="VBSCRIPT"%〉 
  〈html〉 
  〈head〉 
  〈metaNAME="GENERATOR"Content="MicrosoftFrontPage3.0"〉 
  〈metaHTTP-EQUIV="Content-Type"content="text/html;charset=gb_2312-80"〉 
  〈title〉DocumentTitle〈/title〉 
  〈metaname="MicrosoftBorder"content="tl,default"〉〈/head〉 
  〈bodyBACKGROUND="/ie/images/watermrk.gif"BGPROPERTIES="FIXED"BGCOLOR="#00FFFF"〉 
  〈% 
  mousepointer=13 
  SetConn1=Server.CreateObject("ADODB.Connection") 
  conn1.open"DSN=cznj" 
  Setrcst1=conn1.execute("SELECT*FROMpages_catalogue") 
  sch_str=request.form("text1") 
  doubbytes=len(sch_str)\2 
  sch_str=left(sch_str,doubbytes) 
  Response.Write"〈strong〉〈CENTER〉〈H2〉查找结果〈/H2〉〈HR〉〈Br〉〈/strong〉" 
  Dimresult 
  result=false 
  Response.Write"〈UL〉" 
  dowhilenotrcst1.eof 
  tit=rcst1.fields("file_title") 
  fn=rcst1.fields("file_name") 
  file_name=Server.MapPath("/")&"\njweb\private\"&fn 
  to_find=text_match(file_name,sch_str) 
  ifto_findthen 
  url="private/"&fn 
  Response.Write"〈LEFT〉〈LI〉〈H4〉〈AHREF="&url&"〉"&tit 
  endif 
  rcst1.movenext 
  result=resultorto_find 
  loop 
  Response.Write"〈/UL〉" 
  ifnotresultthen 
  Response.Write"〈H3〉〈I〉未找到!〈/I〉〈/H3〉" 
  endif 
  mousepointer=0 
  %〉 
  〈scriptRUNAT="Server"LANGUAGE="VBScript"〉 
  functiontext_match(filename,search_string) 
  dimretstring 
  dimfind_pos 
  Dimfso,a 
  dimdone 
  text_match=false 
  Setfso=Server.CreateObject("Scripting.FileSystemObject") 
  Seta=fso.OpenTextFile(filename,1,FALSE)"ForReading--〉1 
  done=a.AtEndOfStreamortext_match 
  DoWhilenotdone 
  retstring=a.ReadLine 
  find_pos=instr(retstring,search_string) 
  iffind_pos〉0thentext_match=true 
  done=a.AtEndOfStreamortext_match Loop 
  a.Close 
  endfunction 
  〈/script〉 
  〈/body〉 
  〈/html〉

相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 360随身Wifi 4G版什么怎样提高origin下载速百度收购PPS已敲定!3

最新文章 伊森卡特的消失通关流千牛怎么设置自动回复 增加新功能,S版Moto G喜获Android 4.4.4更鸡肋?谷歌Play Music发布更新版本千牛怎么设置自动回复​千牛云盘怎么用

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方office2013安装教程图解:手把手教你安装与同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载VeryCD镜像网站逐个数,电驴资料库全集利用PHP程序设定防止MySQL注入或HTML表单滥web服务器和应用服务器的区别安卓android 系统支持什么视频格式