首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

目前网络上的搜索引擎众多,并且各有优缺点,为了搜索某些内容,有时经常需要登录不同的搜索引擎,在不同的搜索引擎网页之间转换非常不方便。本章将做一个聚合搜索的演示示例,它集成了百度、Google、雅虎、爱问、搜狗、中搜6大常用搜索引擎。本系统以6大搜索引擎作为搜索源,利用正则表达式匹配搜索结果,从而给用户呈现一个没有任何搜索引擎广告,整洁的搜索结果。本章将从工具类代码、底层代码、页面文件3个方面逐步讲述其具体实现。

13.1  需求分析和系统概况

搜索引擎是网络上常用且实用的一项功能。百度、Google、雅虎、爱问、搜狗、中搜等搜索引擎在搜索方面各有千秋。有时候,为了搜索某方面的具体内容,用户不得不从一个搜索引擎再转到另一个搜索引擎,极为不方便。本章的聚合搜索就是为了适应这个需求而产生的。

13.1.1  需求分析

与其他传统搜索引擎不同,本章的聚合搜索没有自己专用的搜索引擎。它是建立在传统搜索引擎基础上的,可以看作是第三代搜索引擎的一个初步尝试。

本系统的目标就是把6大搜索引擎的强大功能集成到一个页面中,使用户无需在搜索引擎间转来转去,便可得到最符合自己要求的搜索结果。并且搜索引擎的显示界面不包含任何传统搜索引擎的广告,而是显示本系统指定的广告内容。这为系统的盈利模式开辟了一个思路。

由于各大搜索引擎的搜索结果显示界面的页面布局有很大差别,所以必须针对每个搜索引擎写出专用的代码。本章的做法是:首先定义一个搜索抽象类,用来实现各搜索引擎专用类通用的方法和属性。然后各搜索引擎专用类继承这个搜索抽象类,并重写自己的专用方法。本章将用到大量的正则表达式,不熟悉这方面知识的读者,建议先查看相关内容。

13.1.2  系统概况

本系统的运行效果如图13.1所示。在文本框中输入要搜索的关键字,单击“搜索”按钮,便可得到搜索结果。页面的右部是本系统的广告位,可以显示本系统的任意广告。系统默认使用的是Google的搜索引擎,如果对搜索结果不满意,可以选择其他搜索引擎。方法是单击网页头部搜索引擎列表。在搜索结果的底部有分页导航,可以查看其他页的搜索结果。图13.2显示的就是搜索结果底部的页码导航条。

图13.1  聚合搜索的运行效果

图13.2  聚合搜索页面底部的页码导航条

13.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封装类

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论