asp简单的搜索引擎代码

2023-09-17 14:24
 

作者:淘特网

出处:http://www.nigeriaembassy.cn

注:转载请注明出处

下面是库中URLINDEX表:URL和Keywords字段分别添加了索引.

 URL           文本 (索引:有(无重复))
Title            文本
Description 文本
Summary    文本
Keywords   文本(索引:有(无重复))

doquery.asp

 简单搜索引擎
LEFTMARGIN=0 TOPMARGIN=0>


 Query:

 


<%
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")
     www.nigeriaembassy.cn "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")
    www.nigeriaembassy.cn sql, conn, 3, 3    
   
    Response.Write "
你搜索的是: " & QueryString   
   
    Response.Write "
搜索的关键字: "
 For i = LBound( QueryWords ) to UBound( QueryWords )
  Response.Write "
" & strIndent & i & ": " & QueryWords( i )
 Next

    ' Print the SQL String
    Response.Write "
sql 语句 : " & sql
 
 ' Print the Results
    Response.Write "
结果    :

    "
     On Error Resume Next
     rs.MoveFirst
     Do While Not rs.eof
      Response.Write "
    " & "" & rs.Fields("Title") & " - "
      Response.Write rs.Fields("Description") & "
    "
      Response.Write "     URL: " & rs.Fields("URL") & ""
      Response.Write "
    "
      rs.MoveNext
     Loop
     Response.Write "
"
 
end if  
%>