蓝派网(www.lan27.com)-精选网络资源,分享和交流! 文章首页站内搜索在线手册广告代码酷站欣赏万年历
您现在的位置: 蓝派网 >> 文章中心 >> 网络编程 >> ASP >> 正文

用ASP做全文检索

作者:佚名    文章来源:网络    更新时间:2008-10-29 13:49:48
摘要:通过词句查找相关的全文是浏览器端常用的方法,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" CODEPAGE="936"%>
  <html>
  <head>
  <meta NAME="GENERATOR"Content="MicrosoftFrontPage3.0">
  <meta HTTP-EQUIV="Content-Type"content="text/html;charset=gb_2312-80">
  <title>Flywe の Blog</title>
  <meta name="MicrosoftBorder"content="tl,default"></head>
  <body>
  <%
  mousepointer=13
  SetConn1=Server.CreateObject("ADODB.Connection")
  conn1.open"DSN=cznj"
  Setrcst1=conn1.execute("Select * FROM pages_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>"
  do while not rcst1.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)
  if to_find then
  url="private/"&fn
  Response.Write"<LEFT><LI><H4><AHREF="&url&">"&tit
  endif
  rcst1.movenext
  result=result or to_find
  loop
  Response.Write"</UL>"
  if not result then
  Response.Write"<H3><I>未找到!</I></H3>"
  endif
  mousepointer=0
  %>
  <script RUNAT="Server"LANGUAGE="VBScript">
  function text_match(filename,search_string)
  dim retstring
  dim find_pos
  dim fso,a
  dim done
  text_match=false
  Set fso=Server.CreateObject("Scripting.FileSystemObject")
  Set a=fso.OpenTextFile(filename,1,FALSE)"ForReading-->1"
  done=a.AtEndOfStreamortext_match
  Do While not done
  retstring=a.ReadLine
  find_pos=instr(retstring,search_string)
  if find_pos>0thentext_match=true
  done=a.AtEndOfStreamortext_match Loop
  a.Close
  end function
  </script>
  </body>
  </html>
  • 上一篇文章:
  • 下一篇文章:
  • 百度搜索: 用ASP做全文检索

  • 发表评论】【打印此文】【关闭窗口】【点击数:
    ★好玩的休闲小游戏★