摘要:本文探讨了只利用VBScript和XML技术创建不需要数据库服务器的搜索引擎,该搜索引擎在最基本的Web服务器和IE 4.0以上客户端环境中运行,可以查询自己网站上的各种信息,尤其适合没有服务器端脚本(CGI、ASP、JSP……)支持和数据库支持的个人网站应用。
关键词:XML、XML文档对象模型(XMLDOM)、搜索引擎、VBScript、文档对象模型(DOM)、Internet
在Internet中,搜索引擎技术是一种十分重要的信息检索手段,目前Internet上的搜索引擎分为两类。
一类是分类法,分类法的做法是把各个网站登陆的信息按照一套分类方法分成若干目录,每个目录下又有几个子目录。分类法的代表是早期的Yahoo和Sohu,例如:
在Sohu的分类检索中,首页下分为了娱乐休闲、国家与地区、工商经济、计算机与互联网等一级目录,在一级目录中以计算机与互联网为例,分为互联网、软件、编程、免费资源等二级目录,互联网目录下又分为门户网站、免费电子邮件、网上教程等三级目录……
另一种搜索引擎实现方法就是关键字搜索。关键字搜索有很多具体实现方法:CGI、ASP等脚本程序或利用Microsoft Index Server,Microsoft Transaction Server等中间件的Internet应用……这种搜索引擎的代表是Google、天网等,以及Yahoo和Sohu的关键字搜索部分。
Google的实例:
关键字搜索具有精确、快速的特性,但一个高性能的关键字搜索引擎除了需要Web服务器,还需要中间件服务器、应用服务器、数据库服务器的支持。以下是一个中间件型的关键字搜索引擎典型实例:
客户端通过浏览器向Web服务器请求搜索引擎程序,搜索引擎程序调用中间件进行搜索处理,这种搜索处理包括在本网站上数据库中的搜索和对Internet上其他服务器的搜索。然后中间件服务器把搜索结果返回给Web服务器上的搜索引擎程序。搜索引擎程序再将数据封装为HTML或XML返回给客户端的浏览器。
反观现在的个人网站,大多使用的是提供商提供的免费空间,没有CGI、没有ASP、没有执行和写入权限、没有数据库,还有的免费空间连1M以上的文件都不让上传(题外话),所以在个人网站上用上面的方法实现关键字搜索引擎是不现实的。我们要实现关键字搜索,就必须找到一种不需服务器端动态脚本和数据库的方法,而且它需要满足以下条件:
1.数据具有良好的结构性;
2.有方便的数据访问接口;
3.有方便的数据查找接口;
4.能够生成具有良好封装型的HTML。
我们可以通过这样一种解决方案实现以上构想:
客户端通过浏览器请求XML文档和客户端脚本语言,Web服务器像返回HTML一样返回给浏览器XML和客户端脚本,在由浏览器进行计算,得出搜索结果。这样做的优点是不需增加Web服务器的负担;缺点是XML文档在被计算之前需要完全下载到客户端,假如存储的记录太多,就会在下载上浪费很多时间(熟悉网络程序的人会发现,这实际上继承了分布式网络应用出现之前的结构)。
让我们看一看这种方案的性能:
1.数据的结构性
让