利用索引服務(Indexing Service)和ASP建立面向整個網站搜索程序,(有點像www.google.com)附源程序

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- 利用索引服務(Indexing Service)和ASP建立面向整個網站搜索程序,(有點像www.google.com)附源程序 (http://www.webasp.net/article/3/2722.htm)
-- 作者:未知
-- 發佈日期: 2003-07-11
配置Index Server
在執行Web服務器上的搜索之前,首先必須創建至少一個索引,並遵循以下步驟完成這項工作。

⒈啟動Windows 2000 Server服務器上的索引。

缺省情況下選擇圖標位於管理工具組中的計算機管理。窗口的右邊提供關於當前在服務器上
存在的索引信息。默認有兩個索引:System和Web。

⒉要創建新的索引,用鼠標右鍵單擊索引服務或右邊的面板,選定新建編錄。

顯示添加編錄對話框,指定索引的名稱並用瀏覽按鈕選取位置。索引服務不會立即開始索引,此時將彈出一條消息框,單
擊確定繼續。為了達到最佳的性能,索引服務可以放在和Web服務器隔離開的硬盤上。

⒊指定索引的目錄,用右鍵單擊新建的編錄名,從彈出選單中選定屬性,將出現如圖2所示的對話框。

第一個選項卡常規顯示剛剛輸入的內容,在第二個選項卡跟蹤中的WWW服務器下拉列表中選取你要索引的Web網站。

⒋有了創建的編錄,現在可以挑選你想在索引中包括的目錄。

這個強大的特性使你能創建幾個用不同方式搜索內容的索引。例如,你可能想快速瀏覽從完整的文本中所引出的章節,這
個特性使你能在Index Server內執行這項任務。要添加一個目錄,用右鍵單擊右邊的面板,選定新建目錄。在出現的對話
框中通過瀏覽按鈕選擇目錄並指定別名。如果必須登錄到服務器才能得到需要的內容,則可以提供將使用的用戶名和密
碼,以便得到需要的內容。如果想檢查受保護的內容,則更要維護內容的安全性,這一特性非常有用,這樣只有被授權的
用戶(也許是那些為此付錢的人)才能得到完整的內容。

還可以使用這個工具排除Web站點中不想索引的子目錄。例如,檢索Scripts/CGI目錄就不會對用戶有什麼用。為此,只要
雙擊該目錄,將包括在索引中選定為否即可,見圖3。

⒌在已經為站點包括/排除了所有目錄後,用右鍵單擊右面板,從彈出選單中選定啟動,重新啟動Index Server服務。

服務器將開始瀏覽已經創建的索引並開始檢索內容。

源程序:
1、search.asp
<HTML>
<HEAD>
<TITLE>The Indexing Service</TITLE>
<STYLE TYPE="text/css">
BODY {font-family:Tahoma,Arial,sans-serif; font-size:10pt}
.heading {font-family:Tahoma,Arial,sans-serif; font-size:14pt; font-weight:bold}
.cite {font-family:Tahoma,Arial,sans-serif; font-size:8pt}
</STYLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SPAN CLASS="heading">Searching The Indexing Service Using ADO</SPAN><HR>
<!--------------------------------------------------------------------------->

<FORM Name="frmSearch" ACTION="QueryIndexServer.asp" METHOD="POST">
Search For: <INPUT TYPE="TEXT" NAME="txtSearchFor">
<P>
<INPUT TYPE="SUBMIT" VALUE="Perform Search">
<INPUT TYPE="RESET" VALUE="Clear Form">
</FORM>

</BODY>
</HTML>
2、QueryIndexServer.asp
<TITLE>The Indexing Service</TITLE>
<STYLE TYPE="text/css">
BODY         {font-family:Tahoma,Arial,sans-serif; font-size:10pt}
.heading    {font-family:Tahoma,Arial,sans-serif; font-size:14pt; font-weight:bold}
.cite        {font-family:Tahoma,Arial,sans-serif; font-size:8pt}
.document    {font-size:10pt; font-weight:bold; background-color:lightgrey; width:100%}
</STYLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SPAN CLASS="heading">Results of search for
<I><%=Request.Form("txtSearchFor")%></I>
</SPAN><HR>
<!--------------------------------------------------------------------------->

<%

  Dim strSearch

  Set rsSearch = Server.CreateObject("ADODB.Recordset")

  ' create the connection string
  strConn = "Provider=MSIDXS; Data Source=web"

  ' construct the search string
  strSearch = "SELECT DocTitle, Path, FileName, Characterization, Size,write" & _
              " FROM SCOPE()" & _
              " WHERE CONTAINS ('" & Request.Form("txtSearchFor") & "')"

  ' open the recordset on the search
  rsSearch.Open strSearch,strConn

  ' show what's been searched for
  While Not rsSearch.EOF
    Response.Write "<SPAN CLASS='document'>" & rsSearch("DocTitle") & "</SPAN><BR>" & _
                   rsSearch("Characterization") & "<BR>" & _
                   "<A HREF='" & rsSearch("Path") & "'>" & rsSearch("write") & "</A>" & _
                   " (" & rsSearch("Size") & " bytes)<P>"
    rsSearch.MoveNext
  Wend

  ' tidy up
  rsSearch.Close
  Set rsSearch = Nothing
%>


</BODY>
</HTML>
採用默認的web索引!

webasp.net