用ASP實現搜索引擎的功能是一件很方便的事,可是,如何實現類似3721的智能搜索呢?比如,當在搜索條件框內輸入“中國人民”時,自動從中提取“中國”、“人民”等關鍵字并在數據庫內進行搜索。看完本文后,你就可以發現,這個功能實現起來竟然是如此的簡單。
第一步,我們要建立一個名為db_sample.mdb的數據庫(本文以Access2000數據庫為例),并在其中建立表T_Sample。表T_Sample包括如下字段:
ID 自動編號
U_Name 文本
U_Info 備注
第二步,我們開始設計搜索頁面Search.asp。該頁面包括一個表單(Frm_Search),表單內包括一個文本框和一個提交按鈕。并將表單的method屬性設為“get” ,action屬性設為“Search.asp",即提交給網頁自身。代碼如下:
以下是代碼片段: <!-- Search.asp --> <form name="frm_Search" method="get" action="Search.asp"> 請輸入關鍵字: <input type="text" name="key" size="10"> <input type="submit" value="搜索"> </form> |
下面,就進入了實現智能搜索的關鍵部分。
首先,建立數據庫連接。在Search.asp的開始處加入如下代碼:
以下是代碼片段: <% Dim strProvider,CNN strProvider="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" strProvider=strProvider & Server.MapPath("/") & "/data/db_Sample.mdb" 假設數據庫存放在主頁根目錄下的data目錄下 Set CNN = Server.CreateObject("ADODB.connection") CNN.Open strProvider 打開數據庫連接 %> |
接下來,判斷 ASP頁所接收到的數據,并在數據庫中進行搜索。
以下是代碼片段: <font color="#FF0000">未找到任何結果?。。。?font> <% Else %> 搜索名稱為“<font color="#FF0000"><%= S_Key %></font>”的項,共找到 <font color="#FF0000"><%= RST.RecordCount %></font> 項:<p> <% While Not RST.EOF 遍歷整個記錄集,顯示搜索到的信息并設置鏈接 %> <!-- 此處可設為你所需要的鏈接目標 --> <font style="font: 12pt 宋體"><a href="info.asp?ID=<%= RST("ID") %>" target="_blank"><%= RST("U_Name") %></a></font> <!-- 顯示部分詳細內容 --> <font style="font: 9pt 宋體"><%= Left(RST("U_Info"),150) %></font><p> <% RST.MoveNext Wend RST.Close Set RST=Nothing End If End If %> |