聚合搜索(一)

目前网络上的搜索引擎众多,并且各有优缺点,为了搜索某些内容,有时经常需要登录不同的搜索引擎,在不同的搜索引擎网页之间转换非常不方便。本章将做一个聚合搜索的演示示例,它集成了百度、Google、雅虎、爱问、搜狗、中搜6大常用搜索引擎。本系统以6大搜索引擎作为搜索源,利用正则表达式匹配搜索结果,从而给用户呈现一个没有任何搜索引擎广告,整洁的搜索结果。本章将从工具类代码、底层代码、页面文件3个方面逐步讲述其具体实现。
1.1 需求分析和系统概况
搜索引擎是网络上常用且实用的一项功能。百度、Google、雅虎、爱问、搜狗、中搜等搜索引擎在搜索方面各有千秋。有时候,为了搜索某方面的具体内容,用户不得不从一个搜索引擎再转到另一个搜索引擎,极为不方便。本章的聚合搜索就是为了适应这个需求而产生的。
1.1.1 需求分析
与其他传统搜索引擎不同,本章的聚合搜索没有自己专用的搜索引擎。它是建立在传统搜索引擎基础上的,可以看作是第三代搜索引擎的一个初步尝试。
本系统的目标就是把6大搜索引擎的强大功能集成到一个页面中,使用户无需在搜索引擎间转来转去,便可得到最符合自己要求的搜索结果。并且搜索引擎的显示界面不包含任何传统搜索引擎的广告,而是显示本系统指定的广告内容。这为系统的盈利模式开辟了一个思路。
由于各大搜索引擎的搜索结果显示界面的页面布局有很大差别,所以必须针对每个搜索引擎写出专用的代码。本章的做法是:首先定义一个搜索抽象类,用来实现各搜索引擎专用类通用的方法和属性。然后各搜索引擎专用类继承这个搜索抽象类,并重写自己的专用方法。本章将用到大量的正则表达式,不熟悉这方面知识的读者,建议先查看相关内容。
1.1.2 系统概况
本系统的运行效果如图13.1所示。在文本框中输入要搜索的关键字,单击“搜索”按钮,便可得到搜索结果。页面的右部是本系统的广告位,可以显示本系统的任意广告。系统默认使用的是Google的搜索引擎,如果对搜索结果不满意,可以选择其他搜索引擎。方法是单击网页头部搜索引擎列表。在搜索结果的底部有分页导航,可以查看其他页的搜索结果。图13.2显示的就是搜索结果底部的页码导航条。
图13.1 聚合搜索的运行效果
图13.2 聚合搜索页面底部的页码导航条
1.1.3 文件结构
本系统的服务器端代码比较多,主要是定义6大搜索引擎的专用类。聚合搜索系统的文件资源管理器窗口如图13.3所示。
图13.3 聚合搜索的资源管理器窗口
其中各个文件的具体功能如表13-1所示。
表13-1 系统文件说明
文 件 名
说 明
Baidu.cs
百度专用搜索类
Google.cs
谷歌专用搜索类
Iask.cs
爱问专用搜索类
ISearch.cs
各专用搜索类的基类
SearchQuery.cs
搜索的查询字符串的处理类
Sogou.cs
搜狗专用搜索类
Tools.cs
工具类,提供一些工具方法,方便使用
Yahoo.cs
雅虎专用搜索类
Zhongsou.cs
中搜专用搜索类
Result.xsl
搜索结果的格式化文件
S.ashx
用于搜索显示的Handler
Search.aspx
搜索框架页面
Search.xml
存储搜索引擎相关信息
Top.htm
搜索引擎选择页面,位于Search.aspx页面的头部框架中
XMLHttp.js
包含$()方法和Ajax封装类

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...