利用索引服务(Indexing Service)和ASP建立面向整个网站搜索程序

网络整理 - 07-26
配置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>" & 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索引!




原作者:hxfwsk
来 源:Chinaasp论坛