zoukankan      html  css  js  c++  java
  • asp简单的搜索引擎代码

    下面是库中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   = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
     
     ' 如果搜索为空则返回
     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> 结果&nbsp;&nbsp;&nbsp;&nbsp;: </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 "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>

     

  • 相关阅读:
    接口文档神器之apidoc
    ApiDoc 后端接口注释文档的使用
    Golang 数组和切片
    go切片展开
    Go的json解析:Marshal与Unmarshal
    golang depth read map
    golang 多级json转map
    GoLang中 json、map、struct 之间的相互转化
    利用delve(dlv)在Visual Code中进行go程序的远程调试-debug方式
    maximum-depth-of-binary-tree——找出数的最大深度
  • 原文地址:https://www.cnblogs.com/encounter/p/2189283.html
Copyright © 2011-2022 走看看