javascript和JQuery焦点图和代码特效大全
当前最流行的开源CMS网站系统大全
当前位置:首页 > 编程开发 > ASP

用asp编写类似搜索引擎功能的代码

来源:IT技术网编辑:疯子发布于:2017-06-14人围观

首先建一个access 数据库,库中有一个URLINDEX表,其中URL和Keywords字段分别添加了索引,如下: 
 

URL             文本 (索引:有(无重复)) 
Title            文本 
Description 文本 
Summary    文本 
Keywords   文本(索引:有(无重复)) 程序文件doquery.asp,代码:
<HTML><HEAD><TITLE>简单搜索引擎</TITLE></HEAD> 
<BODY BGCOLOR=#ffffff MARGINWIDTH="0" MARGINHEIGHT="0"  
LEFTMARGIN=0 TOPMARGIN=0>  
<FORM METHOD="post" ACTION="doquery.asp?act=search"> 
 Query: <INPUT TYPE="Text" NAME="QueryString"><BR> 
 <INPUT TYPE="Submit" VALUE="Submit">
</FORM> 
</CENTER> 


<% 
dim act 
act=request("act") 
if(act="search") then 
 QueryString = Request.form( "QueryString" ) 
 QueryWords  = Split( QueryString ) 
 strIndent   = "          " 
  
 ’ 如果搜索为空则返回 
 If QueryString = "" Then 
  Response.Redirect( "default.asp" ) 
 End If 
  
 Session.timeout = 2 
 If IsObject(Session("sitesearch_conn")) Then 
     Set conn = Session("sitesearch_conn") 
 Else 
     Set conn = Server.CreateObject("ADODB.Connection") 
     conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("database/SiteSearch.mdb"),"","" 
     Set Session("sitesearch_conn") = conn 
 End If 

 ’ 查询语句 
 sql = "SELECT * FROM [URLIndex] WHERE" 
     
 ’搜索Description字段 
 sql = sql & " ( [Description] LIKE ’%" & QueryWords( 0 ) & "%’"   ’ First 
 For i = LBound( QueryWords ) + 1 to UBound( QueryWords ) 
  If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then 
   If uCase( QueryWords( i-1 ) ) = "OR" Then 
    sql = sql & " OR [Description] LIKE ’%" & QueryWords( i ) & "%’" 
   Else 
    sql = sql & " AND [Description] LIKE ’%" & QueryWords( i ) & "%’" 
   End If 
  End If 
 Next 

 ’ 搜索Keywords字段  
 sql = sql & " ) OR ( [Keywords] LIKE ’%" & QueryWords( 0 ) & "%’" 
 For i = LBound( QueryWords ) + 1 to UBound( QueryWords ) 
  If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then 
   If uCase( QueryWords( i-1 ) ) = "OR" Then 
    sql = sql & " OR [Keywords] LIKE ’%" & QueryWords( i ) & "%’" 
   Else 
    sql = sql & " AND [Keywords] LIKE ’%" & QueryWords( i ) & "%’" 
   End If 
  End If 
 Next 

 ’  搜索Title字段   
 sql = sql & " ) OR ( [Title] LIKE ’%" & QueryWords( 0 ) & "%’" 
 For i = LBound( QueryWords ) + 1 to UBound( QueryWords ) 
  If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then 
   If uCase( QueryWords( i-1 ) ) = "OR" Then 
    sql = sql & " OR [Title] LIKE ’%" & QueryWords( i ) & "%’" 
   Else 
    sql = sql & " AND [Title] LIKE ’%" & QueryWords( i ) & "%’" 
   End If 
  End If 
 Next 
 

 

 

 ’ 搜索Summary字段   
 sql = sql & " ) OR ( [Summary] LIKE ’%" & QueryWords( 0 ) & "%’"  
 For i = LBound( QueryWords ) + 1 to UBound( QueryWords )  
  If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then  
   If uCase( QueryWords( i-1 ) ) = "OR" Then  
    sql = sql & " OR [Summary] LIKE ’%" & QueryWords( i ) & "%’"  
   Else  
    sql = sql & " AND [Summary] LIKE ’%" & QueryWords( i ) & "%’"  
   End If  
  End If  
 Next  

 sql = sql & " )"  


    ’   
    Set rs = Server.CreateObject("ADODB.Recordset")  
    rs.Open sql, conn, 3, 3       
      
    Response.Write "<BR><B> 你搜索的是: </B> " & QueryString      
      
    Response.Write "<BR><B> 搜索的关键字: </B> "  
 For i = LBound( QueryWords ) to UBound( QueryWords )  
  Response.Write "<BR>" & strIndent & i & ": " & QueryWords( i )  
 Next  

    ’ Print the SQL String  
    Response.Write "<BR><B> sql 语句 : </B> " & sql  
   
 ’ Print the Results  
    Response.Write "<BR><B> 结果    : </B> <UL>"  
 On Error Resume Next  
 rs.MoveFirst  
 Do While Not rs.eof  
  Response.Write "<BR>" & "<A HREF=’OpenPage.asp?IndexURL=" & rs.Fields("URL").Value & "’>" & rs.Fields("Title") & "</A> - "   
  Response.Write rs.Fields("Description") & "<BR>"  
  Response.Write "     <FONT SIZE=2>URL: " & rs.Fields("URL") & "</FONT>"  
  Response.Write "<HR SIZE=1 WIDTH=200 ALIGN=LEFT>"  
  rs.MoveNext  
 Loop  
 Response.Write "</UL>"  
   
end if     
%>  


</BODY>  
</HTML>  
 

 

 

与相关的文章
有时间的话来看看IT界的突发事件