资源描述
Win2000索引服务的WEB应用
摘要 在WWW上面有很多全文数据检索工具即搜索引擎,如Yahoo、新浪、
网易等。微软公司在Win2000里提供了一个工具Index Server,可以在自己的网站内部架设站
内的搜索引擎,即通过Web Server(IIS)与Index Server的交互,建立自己的搜索引擎。
关键字 Win2000 IIS Index Server ASP ADO 全文检索
1 前言
在网络时代,通过输入关键字,就能查到自己感兴趣的资料,如果你制作了你自己网站,又想
提供站内的搜索功能,你就可以自己动手做一套属于你自己的站内搜索系统。Windows2000提供
了索引服务,缺省为未安装,通过在控制面板上的服务设置打开Index Server服务以后,就等于
拥有了一套个人专属的搜索引擎。 通过设置,大部分的时候都不需要人工干预, 在预设的情况
下,系统负担较轻时,Index Server就会找出系统指定的文件夹,一般是预设的WEB站点及预设
的FTP站点下所有的虚拟目录以及自己指定的硬盘上的文件夹,接着建立及维护存储文件的目录。
当设置好Index Server以后,在前端输入查询条件,Index Server就会搜索这份索引,然
后以HTML的格式传回到前端,因为Index Server事先会建立文件索引, 搜索的速度将比全文
本的搜索快很多。
2 Index Server的对象和属性
被索引的文件类型
在WEB服务器下的所有文件,Index Server一般都会建立一份索引,这些文件有HTML文件、
ASP文件、Help File文件、文本文件以及Office软件制作的文件等,甚至可以是非文本的文件
类型,如可执行文件,当然,对这些文件无法通过有意义的文字来查询。
在实际运用中,我们一般关心的文件是文本类型文件,如网页等,基本上Index Server也能
够满足一般的应用要求。
Index Server查询规则
(1) 不区分大小写。
(2) 如果包含特殊字符如双引号或者其他特殊字符如逗号,惊叹号等,必须要用双引号将字符
包含起来。
(3) 多条件查询可以用逗号将关键字分开。
(4) 支持布尔运算符,例如AND、OR、NOT、NEAR、、等等。
Index Server查询对象
在Windows2000中,Index Server查询对象包含在之中,叫做Indexing Service
Server Side Object,即SSO,提供了建立及管理Recrodsets和查询的控制,利用SSO获得Index
Server建立的目录及文件索引,再用后端的描述语言VBScript或者javascript格式化传回前端。
SSO对象
Query对象
属性名称 数据类型 功能描述
AllowEnumeration Boolean 是否允许递归搜索目录索引,缺省是False
CiScope String 指定搜索的路径,多于一个路径的话用逗号分开
Columns String 从OLE DB Recordset取出的字段
MaxRecords Long 希望取得的记录数
Query String 查询限制条件
SortBy String 根据哪个字段排序
Query方法 Method
方 法 功 能 描 述
CreateRecordset 建立ADORecordset,有sequential和nonsequential
DefineColumn 给查询的字段定义一个别名
QueryToUrl 转换为URL参数
SetQueryFromURL 设定Query对象及相关内容
Utility对象
方 法 描 述
AddScopeToQuery 加入查询路径
HTMLEncode 给指定的字符串按照HTML编码
URLEncode 按照URL编码规则应用到给定的字符串
可用的文件信息
属性名称 功 能 功 能 描 述
Characterization 文件的摘要
DocAuthor 文件的作者
Rank 排名
DocSubject 文件的主题
DocTitle 文件的标题
FileName 文件名
Vpath 文件的完整虚拟路径
Size 文件大小
3 分页检索部分源代码:
%
= True
MySelf = ( "PATH_INFO" )
Page = CLng(Request( "Page" ))
Path = Request( "Path" )
Keyword = Request( "Keyword" )
MaxRecords = CLng( Request( "MaxRecords" ) )If Page = 0 Then Page = 1
If Keyword = Empty Then Keyword = "新华网湖南频道"
If MaxRecords = 0 Then MaxRecords = 50
Param = "&Keyword=" & (Keyword)
Param = Param & "&Path=" & (Path)
Param = Param & "&MaxRecords=" & MaxRecords
%
HTMLBODY bgcolor="#FFFFFF" Background="../"H2Index Server 搜索引擎HR/H2
FORM Action=%=Myself% METHOD=GET
关键字:INPUT Type=Text Name=Keyword Value="%=Keyword%"BR
路 径:INPUT Type=Text Name=Path Value="%=Path%"
(可省略,输入详细路径如/news/2001-10-18)BR
最大文件数:INPUT Type=Text Name=MaxRecords Value="%=MaxRecords%"BR
INPUT Type=Submit Name=Send Value=" 搜 索 "
/FORM%
If Request ("Send") Empty Or Request ("Page") Empty Then
Set Q = ("ixsso. Query") ‘建立Query对象
If Path Empty Then
Set U = ("ixsso. Util") ‘建立Util 对象
Q, Path, "deep" ‘设置查询方式和路径
End If
= Keyword ‘关键字
= "rank[d]" ‘排序方式
= "DocTitle, Characterization, Rank, VPath, Write, Size" 需要的字段
= MaxRecords ‘最大纪录数
Set rs = ("nonsequential") ‘建立记录集%
HR
BLOCKQUOTE%
= 5
If Page 1 Then Page = 1
If Page Then Page =
If Page = 0 Then
Msg = "搜索结果:没有找到任何符合条件的文件!"
Msg = ( Msg )
Myself & "?Msg=" & Msg & Param
End If
= Page
For iPage = 1 To
RecNo = (Page - 1) * + iPage
%
B%=RecNo & ". "%%=rs("DocTitle")%/BBR
B摘要:/B%=rs("Characterization")%BR
B网址:/BA HREF=%=rs("vPath")%%=rs("vPath")%/ABR
B时间: /B%=rs("Write")%BR
B大小: /B%=rs("Size")%P
%
If Then Exit For
Next
%/TABLE/BLOCKQUOTE
DIV ALIGN=rightFORM Action=%=Myself% Method=GETHR
%If Page 1 Then ‘ 如果不是位于第一页 %
A HREF=%=Myself%?Page=1%=Param%第一页/A
A HREF=%=Myself%?Page=%=(Page-1)%%=Param%/A
%End If
If Page Then ‘ 如果不是位于最后一页%
A HREF=%=Myself%?Page=%=(Page+1)%%=Param%/A
A HREF=%=Myself%?Page=%=%%=Param%最后一页/A
%End If%
输入页号:INPUT TYPE=TEXT Name=Page SIZE=3
页号:FONT COLOR="Red"%=Page%/%=%/FONT
/FORM/P/DIV
%End If%
%If Request("Msg") Empty Then %
HRFONT Color=Red%=Request("Msg")%/FONT
%End If%/BODY/HTML
4 小结
通过运用index sever对象属性,就可以达到站内搜索功能的很好效果,增加了网站的功能,不
需要外部的搜索,提高了查找效率,方便了网站浏览,在网站的运行里面,该搜索系统表现良好,速
度也很快,界面也很类似我们经常使用的互联网上一些着名的搜索引擎。
参考文献
微软公司 http://
清华大
学出版社 廖信彦着,ASP应用大全-ASP与数据库整合,2000年.
展开阅读全文