18.1 课前导读
18.2 课堂教学
18.3 上机练习
18.4 课后作业第 18课 网 上 搜 索随着网络应用的普及,网上信息资源的增长也迅速加快 。 面对日趋增长的海量信息,单靠网页之间的链接来实现有效的信息访问已变得难以应对 。 为解决这一突出的需求,出现了专门提供网上信息搜索服务的网站,它们定期扫描整个网络,按照一定的分类方法把网站的信息归类,存放到特定数据库中,并对外开放信息搜索服务 。 由于需要提供巨大的带宽服务,
这种服务往往是由网络上的门户网站来提供 。
18.1 课前指导有两种形式的,网上搜索,,Web( 站外 ) 搜索和站内搜索 。
前者如搜狐 ( Sohu),Chinaren或新浪网 ( Sina)
等专业搜索引擎,可以在整个 Internet上根据需要搜索文件或网页的内容,标题,文件名,作者等信息;
后者则根据浏览者输入的字符串,在本网站中搜索文件或网页的内容,标题,文件名,作者等信息是否与搜索的字符串相符 。
当然,这里指的相符并非百分之百的相同,而是相似程度,例如输入,快乐,两个字,可以搜索网页的内容,标题,文件名或作者等是否有,快乐,的关键字,搜索的结果可能会有很多记录,有的可能完全无关,有的则相当吻合,搜索的结果有时可能令您相当惊讶,因为它真的完全与我们搜索的字符串无关 !
专业搜索引擎的设计是相当困难的,我们采用一种取巧的方法:将搜索网页定向于专业搜索引擎,利用专业搜索引擎获得搜索结果 。
站内搜索相对而言要简单的多 。 一般来说,搜索本网站的信息也是网站应该提供的重要功能之一 。
18.2 课堂教学
18.2.1 站外搜索
18.2.2 使用文件系统的站内搜索
18.2.3 使用服务器索引服务的站内搜索
18.2 课堂教学本 课 主要 学习以下 内容:
① 利用 ASP内置对象 Request获取变量中的要求搜索的关键字,再用另一个 ASP内置对象 Response的
Redirect方法将搜索网页转向其他的诸如搜狐,网易等专业搜索引擎中,同时提交该关键字,最后从某专业网站中获得出搜索结果 。 这种方法可以在站点上方便地使用各大搜索引擎,而无需登录其主页面 。
② 使用,文件系统对象,设计一个网站内 的 文件搜索引擎,在本地 Web服务器上 进行搜索,搜索结果在网页中以超级链接的方式来显示 。
③ 使用 Web服务器 提供的,索引服务,设计一个网站内 的 文件搜索引擎,仅对在本地 Web服务器上建立索引的文件进行搜索 。
18.2.1 站外搜索
1,站外搜索引导页面
2,站外搜索主页面
18.2.1 站外搜索站内文件搜索引擎包括 Search.htm和 Search.asp
两个文件,Search.htm是一个引导页面,提供若干专业搜索引擎 。 由于不需要服务器中的 ASP解释程序编译,运行速度快,真正实现搜索功能的是 Search.asp
页面 。
1,站外搜索引导页面站外搜索的引导页面提供一个下拉列表让用户选择几个预设的专业搜索网站之一,通过文本框接受用户输入的关键字 。 编写其中 代码,并将文件以
SearchWeb.htm为名存盘 。
说明:按,提交,按钮后,用户选择的搜索网站和输入的关键字将作为参加被送到 主页面 处理;,全部重写,除清空文本框外,还要将下拉选择框复位到第一个搜索网站 。
2,站外搜索主页面站外搜索主页面由引导页面的 <FORM>元素引导而来,接受从引导页面 SearchWeb.htm传送过来变量
TextField和 Select,而后生成对应网站的搜索页面的格式,送交浏览器,转向相应的网站搜索引擎 。 编写代码,并将文件以 SearchWeb.asp为名存盘 。
说明:
① 程序开始的第一句的 Response对象的 Buffer属性决定 ASP程序生成的 HTML格式的文档是先存放在服务器端的一个缓冲区内 ( Buffer为 True),还是边生成边发送到客户端 (Buffer为 False)。 不同版本的 IIS中对 Buffer属性有不同默认值,在 Windows XP中,其默认值为 Ture,如果在一些网站中,其它的网站若对此属性的默认值进行了修改,则会出现如图 18-3所示的服务器出错信息,因此,这里最好显式地加入此语句令 Buffers为 True。
② 在实现提交搜索字串到其他搜索引擎时,关键是要知道搜索引擎所使用的查询格式,如网易网站的搜 索 引 擎 使 用 的 是,
http://nisearch.163.com/Search?q=搜索字串 。 如果要加入新的搜索引擎,只需对新的搜索引擎在地址栏中的信息进行分析,在,?” 号之后的内容为传送给搜索程序的变量,找到关键字变量,在程序中用自定义的变量替换即可 。 这里的关键字为,ASP”,在地址栏里,http://nisearch.163.com/Search?q=ASP表示关键字为,ASP”,在程序里就可以用
"http://nisearch.163.com/Search?q=" & keyword作为转向字符串进行转向,其中 keyword为程序中字义的关键字变量 。
18.2.2 使用文件系统的站内搜索
1,站内文件搜索引导页面
2,站内文件搜索主页面
3,站内文件搜索改进站内文件搜索引擎包括 Search.htm和 Search.asp
两个文件,Search.htm是一个引导页面,由于不需要服务器中的 ASP解释程序编译,运行速度快,真正实现搜索功能的是 Search.asp页面 。
1,站内文件搜索引导页面站内文件搜索引擎引导页面接受用户输入的待搜索的关键字,并将该关键字存放在 SearchText变量中 。
编写代码,并将文件以 Search.htm为名存盘 。
说明:按,确定,按钮后,将打开真正实现搜索功能的是 Search.asp页面;按,清除,按钮将输入框中的信息清空,以便接受新的输入 。
2,站内文件搜索主页面站内文件搜索主页面接受从引导页面 Search.htm
传送过来关键字变量 SearchText,对网站内所有文件进行搜索,并把搜索结果显示输入,图示 。 在记事本中编写代码,并将文件以 Search.asp为名存盘 。
说明:该程序包含以下 4个程序模块:
① 变量声明 。 对程序用到的变量进行声明,初始化相关变量 。
② 创建文件系统对象 。 通过如下语句:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
建立一个文件系统对象 objFSO,以获取文件信息 。
③ 信息搜索子程序 。 因为要多次执行文件搜索,
所以将文件搜索定义为一个子程序模块,在主程序中多次调用,利用结构化编程的技术提高编程效率 。
④ 程序退出模块 。 显示程序结束信息,释放系统资源 。
3,站内文件搜索改进在站内找到符合包括关键字的文件可能不至一个,
一般还想通过该文件的大致内容来判断是不是所要查找的文件,而上述的站内文件搜索页面只能显示文件路径,不能显示被搜索到文件的关键字所在区域内容概要,显得不够完善,为此,增加显示关键字所在区域内容和分析文件扩展名的功能,如图 18-7所示 。
站内文件搜索引擎引导页面 Search.htm与 13.1.2
中的 Search.htm 相同,站 内 文 件 搜 索 主 页 面
Search.asp的改进代码 。
18.2.3 使用服务器索引服务的站内搜索
1,启动“索引服务”
2,索引服务的内置对象
3,网站搜索
1,启动,索引服务,
只有 Windows NT 4.0 Server,Windows 2000
Professional/Server/Advanced Server或是 Windows XP
操作系统才有 Indexing Service( 索引服务 ),其他如
Windows 95/98/Me等操作系统均无 Indexing Service。
打开,开始,菜单,选择,控制面板,,在打开的
,控制面板,中选择,性能和维护,→,管理工具,→,计算机管理,,打开,计算机管理,窗口,在左边的,控制台树,中展开,服务和应用程序,项,用右键单击,索引服务,打开快捷菜单,如图 18-8所示 。
选择,启动,,或确认已经启动 。
图 18-8 启动“索引服务”
2,索引服务的内置对象启动索引服务后,即可使 用 其 内 置 对 象,
Ixsso.Query和 Ixsso.Util对象来制作搜索引擎 。 下述语法分别创建 Ixsso.Query和
Ixsso.Util对象变量:
Set 变量名 =
Server.CreateObject("Ixsso.Query")
Set 变量名 =
Server.CreateObject("Ixsso.Util")
下面简要介绍这两个内置对象:
(1) Ixsso.Query对象
Ixsso.Query对象具有一些有用的属性和方法:
① Query属性:设置或返回搜索字符串 。 如下述代码搜索字符串,习题解答,,
Set objconn = Server.CreateObject("Ixsso.Query")
objconn.Query = "习题解答 "
② Columns属性:设置所要获得的文件信息项 。
其常用的设置值见表 18-1。
表 18-1 Columns属性常用的设置值设置值 说明
Access 该文档的上次访问时间
Attrib 文档属性
ClassId 文档对象的类别标识(例如 Microsoft Word)
Characterization 文档的描述或摘要。这是由“索引服务”生成的
Contents 文档的主要内容。该属性可以查询但不能检索
Created 文档的创建时间
Directory 文档的物理路径,不包括文档名
DocAppName 创建文档的应用程序的名称
DocAuthor 文档的作者
DocTitle 文档的标题
FileName 文档的名称
Path 文档的物理全路径,包括文档名
Rank 结果列表中项目与查询条件匹配的程度。其范围为 0到 1,000。
较大的数字表明更好的匹配
Size 文档的大小,单位为字节
VPath 文档的虚拟全路径,包括文档名。如果存在多个可能的路径,
将选择与指定查询最匹配的路径
Write 上次修改(编写)文档的时间由于,索引服务,将搜索的结果整理成记录集
Recordset,Columns属性相当于 Recordset的字段 。
例如下述代码将文件名,文件大小以及文件的虚拟全路径整理成 Recordset:
objconn.Columns = " FileName,Size,VPath"
③ SortBy属性:设置 Recordset的排序方式 。 例如下述代码按,文件名,递减排序:
objconn.SortBy = "FileName[D]"
若将 D改为 A则表示递增排序 。
④ CreatRecordset方法:用来激活,索引服务,,
并以搜索结果创建 Recordset对象 。 如下述代码返回
Recordset对象 objRS:
Set objconn = Server.CreateObject("Ixsso.Query")
Set objRS = objconn.CreatRecordset("Nonsequential")
Recordset对象具有第 11课所讲的记录集对象的几乎所有的属性,方法 。
(2) Ixsso.Util对象使用 Ixsso.Util对象的 AddScopeToQuery方法用来设置搜索目录 。 该方法有 3个参数,Ixsso.Query对象名,搜索目录的路径,方式 。 其中,方式,取值为
,Deep” 表示搜索子目录,取值为,Shallow” 表示不搜索子目录 。 例如下述代码从服务器的根目录开始搜索信息:
Set objconn = Server.CreateObject("Ixsso.Query")
Set Dic = Server.CreateObject("Ixsso.Util")
Dic.AddScopeToQuery objconn,"/",Deep
3,网站 搜索使用索引服务的网站搜索程序 Search.asp代码 。
18.3 上机练习
【 练习 18-1】 将网上搜索页面进行合并,并且增加一个搜索网站:,百度,。
站外搜索 的网页文件 SearchWeb.asp的 代码 。