1、本 科 毕 业 论 文游戏垂直搜索引擎:基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统Game Vertical Search Engine: Search engine DEMO system based on Heritrix web crawler姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月摘 要搜索引擎是互联网检索技术的核心,随着互联网的迅速发展,目前的综合搜索引擎已无法满足用户的需求,这就成就了垂直搜索引擎的蓬勃发展。垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,相对通用搜索引擎的信息量大、查询不精确、深度不够
2、等提出来的新的搜索引擎服务模式。通过针对某一特定领域或某一特定需求提供的有一定价值的信息和相关服务。本文构建一个关于游戏的垂直搜索引擎,让用户可以在这个游戏搜索网站上,搜索到其需要的游戏信息,并能从搜索结果中打开一个有关详细信息的页面进行浏览。系统使用 MyEclipse 作为开发环境。后台数据处理使用 Lucene 索引工具和Heritrix 爬虫技术,前台使用 JSP 技术进行页面设计,后台数据库使用 MySQL 数据库。设计的目的是让用户可以在网站上搜索其需要的游戏信息,并能从搜索结果中打开一个有关游戏详细信息的页面进行浏览。在系统中,游戏信息是从新浪游戏、17173 和迅雷游戏上利用
3、Heritrix 抓取下来的。网页经过 HTMLParser 解析后,得到的游戏详细信息插入到 MySQL 数据库中,并为该游戏建立 Lucene 索引。最后构建一个简单的 Web 平台,对建立的索引和数据库进行整合,为用户提供真正的搜索服务。另外,本文还对 Lucene 和 Heritrix 等一些开源 java 项目进行了简单的介绍。关键词: 垂直搜索;搜索引擎;LuceneAbstractSearch engine is the core of the Internet information retrieval technology, with the rapid developmen
4、t of Internet, the current horizontal search engine cant satisfy these Internet users, which gives a good opportunity to vertical search engine to develop. Vertical search is a professional search engine in one industry, is the subdivision of search engine. Compared with horizontal search engine whi
5、ch is huge information, inaccurate, not enough depth, the vertical search engine put forward a new model search engine services. Vertical search engine provides special information and related services to a particular area or a specific demand for a certain value.This article builds a vertical searc
6、h engine for game industry, providing the user to search in this game website, searching for game information which they need, and they can click the search results to open a detailed information page. The system uses MyEclipse as a development environment, and uses Lucene index tool and Heritrix cr
7、awler technology to do background data-processing, and uses JSP technology to design the front pages. Besides, it uses MYSQL as the background database. The aim of this design is to make the users search for the game information of their needs in the website, and click the search results to open a d
8、etailed game page to browse the game information. In the system, game information is from Sina, 17173, and Thunder websites by using the Heritrix crawler. After been analyzed by HTMLParser, the information is inserted into the MySQL database, then establish the Lucene indexing of the game. Finally,
9、we build a simple Web platform, and integrate the index and database, providing real search services for the users. In addition, this article also makes a brief introduction to Lucene and Heritrix, which are open-source java projects. Key words:Vertical search; Search engine; Lucene目录第一章:引言 1第二章:垂直搜
10、索引擎的概况 22.1 垂直搜索引擎介绍 .22.2 垂直搜索具的特征 .42.3 垂直搜索引擎与综合搜索引擎的比较 .62.4 垂直搜索的发展现状 .82.4.1 垂 直 搜 索 发 展 的 可 行 性 .82.4.2 垂 直 搜 索 引 擎 存 在 的 必 要 性 .82.4.3 用 户 对 搜 索 引 擎 的 依 赖 性 .92.5 垂直搜索的发展方向 .9第三章:搭建游戏垂直搜索引擎 .113.1 项 目 概 述 .113.2 研 究 目 的 .113.3 可 行 性 分 析 .113.4 需 求 分 析 .123.5 系 统 总 体 结 构 图 133.6 功 能 模 块 分 析 .
11、133.6.1 后 台 数 据 处 理 模 块 133.6.2 前 台 视 图 模 块 143.7 垂 直 搜 索 系 统 框 架 .143.8 Lucene 简介 153.8.1 Lucene 系 统 结 构 和 功 能 分 析 153.8.2 Lucene 全 文 检 索 的 实 现 机 制 及 步 骤 .163.8.3 Lucene 索 引 的 建 立 .173.8.4 Lucene 的 搜 索 183.9 Heritrix 简 介 193.10 网 络 爬 虫 模 块 设 计 203.11 网 页 解 析 模 块 设 计 253.11.1 基 类 设 计 .263.11.2 具 体 解
12、 析 类 设 计 273.12 数 据 库 与 索 引 模 块 设 计 .273.12.1 gameinfo 类 273.12.2 数 据 库 结 构 273.12.3 数 据 库 处 理 和 索 引 处 理 .283.12.4 调 用 数 据 库 处 理 类 和 索 引 处 理 类 283.13 前 台 视 图 模 块 设 计 293.13.1 搜 索 界 面 welcome.jsp.293.13.2 搜 索 结 果 界 面 result.jsp .29第四章:系统的运行结果 .32第 五 章 : 结 束 语 .35致 谢 语 36参 考 文 献 37ContentsChapter 1:In
13、troduction .1Chapter 2:Overview Of Vertical Search Engine.22.1 Introduction Of Vertical Search Engine22.2 Characteristics Of Vertical Search Engine 42.3 Compared Vertical Search Engine With Horizontal Search Engine62.4 The Development Of Vertical Search 82.4.1 The feasibility of the development of v
14、ertical search 82.4.2 The necessity of existence of vertical search engines 82.4.3 The dependent on the search engine92.5 The Direction Of The Development Of Vertical Search 9Chapter 3:Set Up A Vertical Search Engine In Game Industry113.1 Project Overview.113.2 The Purpose Of The Study.113.3 Feasibi
15、lity Analysis .113.4 Requirements Analysis .123.5 The Oerall Structure Of System133.6Analysis Of Functional Modules.133.6.1 Background data processing module .133.6.2 Foreground view module 143.7 Framework For The Vertical Search System.143.8 Introduction Of Lucene.153.8.1 Lucene system structure an
16、d function analysis 153.8.2 Lucene full-text search mechanism and the steps to achieve 163.8.3 Lucene index to establish .173.8.4 Lucene Search183.9 Introduction To Heritrix 193.10 Network Crawler Modular Design .203.11 Page Extractor Modular Design 253.11.1 Base class design263.11.2 Specific extrac
17、tor class design .273.12 Database and indexing module degign273.12.1 Class gameinfo.273.12.2 Database structure 273.12.3 Database processing and index processing 283.12.4 Call the class of database processing and index processing283.13 Foreground View Module Design.293.13.1 Search interface:welcome.
18、jsp293.13.2 Search result interface:result.jsp.29Chapter 4:Runing Result Of The System.32Chapter 5: Summary35Acknowledgement.36References 37游戏垂直搜索引擎 -基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统1第一章:引言当 今 , 互 联 网 已 在 人 们 生 活 中 扮 演 越 来 越 重 要 的 角 色 , 网 络 信 息 资 源 的 爆炸 式 增 长 使 得 人 们 获 得 有 用 信 息 日 益 困 难 , 垂 直 搜 索 引 擎 应
19、 运 而 生 。 在 浩 如烟 海 的 信 息 世 界 里 , 用 户 想 要 快 速 找 到 所 需 资 源 , 搜 索 引 擎 是 不 可 缺 少 的 。本 文 以 游 戏 行 业 垂 直 搜 索 网 站 的 搭 建 开 发 为 背 景 , 深 入 理 解 搜 索 引 擎 的 开发 思 想 , 针 对 所 负 责 的 模 块 , 进 行 垂 直 搜 索 引 擎 项 目 的 开 发 。 首 先 对 垂 直 搜索 引 擎 进 行 了 简 要 的 介 绍 , 介 绍 了 垂 直 搜 索 的 几 个 特 征 , 垂 直 搜 索 和 综 合 搜 索之 间 的 异 同 , 以 及 垂 直 搜 索 的
20、发 展 和 前 景 。接 下 来 , 本 文 以 软 件 工 程 的 思 想 的 文 档 要 求 进 行 书 写 , 包 括 : 项 目 概 述 、 研究 目 的 、 可 行 性 分 析 、 需 求 分 析 、 系 统 总 体 结 构 、 各 模 块 的 分 析 及 垂 直 搜 索 的系 统 框 架 。 之 后 转 让 各 模 块 的 详 细 设 计 , 确 定 每 个 模 块 的 算 法 和 内 部 数 据 组 织 ,并 用 各 种 表 达 工 具 进 行 清 晰 的 描 述 。系 统 使 用 MyEclipse 作 为 开 发 环 境 。 使 用 Lucene 索 引 工 具 和 Heri
21、trix爬 虫 等 技 术 , 构 建 一 个 简 单 的 Web 平 台 , 对 建 立 的 索 引 和 数 据 库 进 行 整 合 , 为用 户 提 供 真 正 的 搜 索 服 务 。在 此 网 站 系 统 的 开 发 过 程 中 , 我 主 要 完 成 了 网 络 爬 虫 模 块 Heritrix 配置、抓取的设计,将需要搜索的几个游戏频道网站的网页抓取存在本地,供后续的析取索引之用,还负责前台 JSP 页面和网站 logo 的设计。并积极配合协助李新泉对索引、搜索模块的开发。第二章:垂直搜索引擎的概况2第二章:垂直搜索引擎的概况2.1 垂直搜索引擎介绍垂直搜索是针对某一个行业的专业搜索
22、引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理 后再以某种形式返回给用户。相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。其特点就是“专、精、深” ,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加 专注、具体和深入。具体而言, 垂直搜索引擎就是对网页库中的某类专门的信息进行一次整合, 定向分字段抽取出需要的数据, 进行处理后再以某种特定形式返回给用户, 它是搜索引擎的细分和延伸。垂直搜索引擎和普
23、通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取, 也就是将网页的非结构化数据抽取成特定的结构化信息数据。如果说网页搜索是以网页为最小单位, 而垂直搜索是以结构化数据为最小单位。将这些数据存储到数据库, 进行进一步的加工处理, 如: 去重、分类等, 最后分词、索引, 最终以对结构化数据的搜索的方式满足用户的信息需求。整个过程中, 数据由非结构化数据抽取成结构化数据, 经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。垂直搜索提供了整合深度和广度的行业信息以及更加细致周到的服务,做到了用于要求的专、精、深。因而业界普遍认为垂直搜索将是搜索市场下一个增长点,具有非常好的前景。垂
24、直搜索引擎的应用领域很多, 比如找工作的搜索、旅游搜索、医药搜索、图书搜索、游戏搜索、购物搜索几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。目前中文垂直搜索引擎也已经出现了很多, 比如以下两个著名的找工作和旅游的搜索引擎网站: 游戏垂直搜索引擎 -基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统3(1)工作搜索引擎:职友集(http:/ 。汇集了各大工作网站的信息,信息量非常大。图2.1 职友集网站截图(2)旅游搜索引擎: 去哪儿 (http:/)。汇集了各大航空的机票信息,具有很好的及时性。图2.2 去哪儿网站截图第二章:垂直搜索引擎的概况4垂直搜索引擎与综合搜索引擎相
25、比, 其信息服务模式有所变化, 它更加注重信息的深度, 更体现“以人为本”的理念。综合搜索引擎好比是“超市”, 其经营商品无所不包, 可以查询所有网站上的信息; 垂直搜索引擎则好比是“家具城”、“电脑城”, 提供专项服务。2.2 垂直搜索具有的特征:特征 1:面向特定领域或对象垂直搜索网站行业选择的原则:(1) 这个行业要有垂直搜索的大量需求;(2) 信息来源相对集中,避免采集全网,降低采集成本;(3) 信息处理量要足够大,太小了可以被人工代替;(4) 根据自己的情况选择专业深度;(5) 用户购买能力强,厂商投放广告的资金量大表2-1:垂直搜索领域表游戏垂直搜索引擎 -基于 Heritrix
26、网络爬虫的搜索引擎 DEMO 系统5特征 2:面向特定需求垂直搜索的用户是有特定需求的。以汽车为例,主要需求有:购车,用车,修车,转让二手车,选驾校,选4S店等等,酷讯做“火车票”搜索,就是把握了出行高峰购票难的需求。特征3:全面既然已经受限到特定领域,就要把这个领域的信息尽可能都收集全,尽可能的保证信息的全面。特征4:深入 借助行业知识进行深度挖掘,积累行业背景知识,利用数据挖掘等手段,发现信息之间的关联和趋势,给用户提供可以用来指导实践,解决问题的“知识”,从而达到“深”的效果,这是垂直搜索超越通用搜索的一个关键点。特征5:准确 由于限定了领域,因此搜索结果有更好的相关性。比如输入“Pol
27、o”,在汽车领域就是Polo汽车,而不会返回Polo衬衫或者Polo皮带等等。由于有领域知识的支持,用户的需求又比较集中,因此有理由给出更准确的检索结果。特征6:及时通用搜索缺乏时效性,垂直搜索中存在“时间维”(1)不能总把所谓最相关内容的排在最前面,因为有可能已经过时了。(2)垂直搜索的搜索范围小,也为及时更新创造了条件特征7:结构化利用信息抽取技术把非结构化信息自动转换为结构化信息,并与原有的结构化信息整合检索,这是垂直搜索的关键一步。它具有以下两个好处:(1) 大幅度地减少用户获取信息的速度(2) 在数据库中可以方面地进行深层的归并、统计、挖掘等第二章:垂直搜索引擎的概况62.3 垂直搜
28、索引擎与综合搜索引擎的比较(1)信息服务用户的比较:表 2-2:垂直搜索引擎和综合搜索引擎信息服务用户的比较垂直搜索引擎 综合搜索引擎用户数量 小 大用户对需求的描述 明确 不明确用户的介绍垂直的搜索引擎, 用户有明确的信息需求, 同时这种信息需求可以界定在某一个特定范围内, 并且满足其信息需求的信息产品是特定形式的组织化的信息, 它提供的结果都是与用户需求相关的, 用户不用自己再进行分析和判断。传统的综合的搜索引擎,就是为网民提供一个检索的入口, 提供整个互联网上与用户提问相关各种网页信息, 然后用户自己判断结果中的信息哪些是相关的, 哪些是不相关的。(2)信息服务内容的比较:表 2-3:垂
29、直搜索引擎和综合搜索引擎信息服务内容的比较垂直搜索引擎 综合搜索引擎搜索结果的形式 结构化的数据 网页简单的描述和链接搜索结果的查全率 有限,查全率不足 数量巨大搜索结果的查准率 很高 相对较低搜索结果的描述内容 针对性强,从多个角度描述用户查找的特定信息非人工干预,针对性较弱游戏垂直搜索引擎 -基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统7(3)信息服务策略的比较:表 2-4:垂直搜索引擎和综合搜索引擎信息服务用户的比较垂直搜索引擎 综合搜索引擎服务者的能动性 被动 被动提供服务的时间 较长 较短信息服务产品经营 无偿 无偿服务者与用户空间距离 远程服务 远程服务服务手段 抓取
30、、网页结构化信息抽取技术、元数据采集技术、分词技术、索引技术搜索技术、抓取、索引、排序等技术(4)信息服务模式的比较:这两种搜索引擎的服务模式可以如下图所示:图2.3 综合搜索引擎和垂直搜索引擎服务模式比较图第二章:垂直搜索引擎的概况82.4 垂直搜索的发展现状2.4.1 垂直搜索发展的可行性2009 年CNNIC的第23次报告显示,截止到2008年12月31日,我国网民总人数达到2.98 亿,超过美国,位居世界第一位。半年来平均每分钟就新增近100个网民,半年的增长接近去年全年的增长量;互联网普及率已经达到22.6%,比2008 年同期9.4%的互联网普及率提高了接近3个百分点;宽带网民数达
31、2.7亿,手机网民数较去年翻了2.3倍,已有11760 万人。由上述的具体数据,我们可以看出垂直搜索领域的发展前景是相当广阔的,以年增长率31.7%的逐渐扩大的网民队伍,有可能通过垂直搜索的努力而由潜在用户变成为垂直搜索引擎的真正的、持久的用户。互联网普及率的提高可以在一定程度上说明,网络用户的上网行为、上网条件等因素将更加复杂化,不同的生活方式、学历背景、工作环境、兴趣爱好的人所产生的不同的信息需求将会带给垂直搜索引擎专业搜索引擎更多的商机与市场切入点。2.4.2 垂直搜索引擎存在的必要性第23次报告显示:中国大陆地区域名总数已达到1682 万个,增长的主要动力来自中国国家顶级域名CN,年增
32、长率达到489.5%。在全球国家顶级域名中,CN 域名数仅次于德国,居世界第二位。中国网站数量达到287万个,其中,增长最快的是CN 域名下的网站,截至2008 年12 月底,CN 下网站数达1357万,年增长率达到50.8%。域名与网站的迅速增长将会为人们带来更巨大的信息资源,但网络用户却常常因为查询不到自己所需的信息而被淹没在大量的、不相关的检索结果中,无所适从。垂直搜索的及时出现在一定程度上为人们解决了这个烦恼。垂直搜索引擎是专为查询某一学科或主题的信息而产生的查询工具,它专门收录某一方面、某一行业或某一主题的信息,其查准率很高,几乎可以达到90%以上。并且垂直搜索引擎提供的搜索结果形式
33、为结构化的数据,描述内容是与检索需要密切相关的信息,因此用户几乎不需要点击链接就能直接选定自己想要的信息。垂直搜索引擎弥补了综合搜索游戏垂直搜索引擎 -基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统9引擎搜索结果数量大,相关度较低等缺陷,在搜索领域不可或缺;而面对增长数量迅速的域名和网站(其中我国网站在半年内增加了47 万个,年增长率达到66.4%),垂直搜索引擎更是具有存在的必然性与必要性。2.4.3 用户对搜索引擎的依赖性在第23次报告中,搜索引擎的使用率仅次于网络新闻(77.3%),达到74.8%。08搜索引擎报告也表明了中国搜索市场持续升温的状态。虽然目前在搜索领域,综合搜
34、索引擎的使用率仍占较大比重。用户对百度、Google 等大型综合搜索引擎的依赖性较强,但中国搜索市场整体上已经形成了既竞争又互补的格局,呈现出了功能和搜索内容上相互补充的态势。因此,专业的搜索引擎垂直搜索引擎必将有很大市场与商机,网络用户对综合搜索引擎的依赖性,也必将会在垂直搜索引擎上延续。2.5 垂直搜索的发展方向(1)智能化目前, 从垂直搜索的应用情况看, 大部分垂直搜索的结构化信息提取都是依靠手工、半手工的方式来完成的, 面对互联网的海量信息, 很难保证信息的实时性和有效性, 对智能化的结构化信息提取技术的需求非常迫切。目前国内非结构化信息的智能提取技术取得了重大进展, 在一些领域得到了
35、有效应用, 因此智能化成为了垂直搜索引擎的发展趋势。(2)目录再分类与早期的网址分类搜索引擎相似, 但垂直搜索引擎只选定了某一特定行业或某一主题进行目录的细化分类, 结合机器抓取行业相关站点的信息提供专业化的搜索服务。这种专业化的分类目录或称主题指南、列表浏览, 很容易让用户迅速知道自己要找的是什么, 并且按目录点击就能找到。(3)向深度挖掘型搜索发展深度挖掘型垂直搜索引擎通过对元数据信息进行深度加工, 为用户提供网页搜第二章:垂直搜索引擎的概况10索引擎无法做到的专业性、功能性、关联性, 有的加入了用户信息管理以及信息发布互动功能, 能很好地满足用户对专业性、准确性、功能性、个性化的需求。专
36、业的元数据属性构造背后需要一个强大专业人士组成的团队。这些专业人士对该领域的元数据模型进行专业的分析、关联整合, 再通过搜索技术按这些元数据模型把这些信息组织呈现给用户。(4)向搜索交易平台发展垂直搜索引擎由于自身对行业的专注, 使得它可以提供行业信息深度和广度的整合以及更加细致周到的服务。对消费领域可以推出针对某一行业的搜索交易平台, 比如美容搜索、餐饮搜索、购物搜索、机票旅游搜索。这种交易平台针对需要通过开展电子商务来获得更多顾客的商家。搜索交易平台让行业内商家和顾客直接沟通、咨询, 不再需要转到第三方平台再进行交易。搜索交易平台有可能发展成ebay、 taobao那样的购物平台。可以预见
37、, 垂直搜索今后将会更加流行, 同时对人们网络生活的方方面面也将产生更为深刻的影响。游戏垂直搜索引擎 -基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统11第三章:搭建游戏垂直搜索引擎3.1 项 目 概 述设 计 构 建 一 个 关 于 游 戏 的 垂 直 搜 索 引 擎 , 以 Eclipse 作 为 开 发 环 境 。 后 台数 据 处 理 使 用 Lucene 索 引 工 具 和 Heritrix 爬 虫 技 术 , 前 台 使 用 JSP 技 术 进行 页 面 设 计 , 后 台 数 据 库 使 用 MySQL 数 据 库 。 设 计 的 目 的 是 让 用 户 可 以 在
38、网 站上 搜 索 其 需 要 的 游 戏 信 息 , 并 能 从 搜 索 结 果 中 打 开 一 个 有 关 游 戏 详 细 参 数 的页 面 进 行 浏 览 。 在 系 统 中 , 游 戏 信 息 是 从 新 浪 游 戏 、 17173 和 迅 雷 游 戏 上 利用 Heritrix 抓 取 下 来 的 。 网 页 经 过 HTMLParser 解 析 后 , 得 到 的 游 戏 详 细 信息 插 入 到 MySQL 数 据 库 中 , 并 为 该 游 戏 建 立 词 库 和 Lucene 索 引 。 最 后 构 建 一个 简 单 的 Web 平 台 , 对 建 立 的 索 引 和 数 据
39、库 进 行 整 合 , 为 用 户 提 供 真 正 的 搜 索服 务 。3.2 研 究 目 的开发具有全文(中文)检索的垂直搜索引擎系统.采用 Lucene 搜索引擎开发工具,开发网络蜘蛛和检索程序.针对已经提供的多个综合垂直门户网站, 分析其信息特点和关键词分布状况.完成垂直搜索引擎。意义是掌握、了解小规模搜索引擎技术。3.3 可 行 性 分 析1)技术方面搜索引擎中用到了很多 Java 开源项目,如 Lucene、Heritrix 和 HTMLParser 等。其中 Lucene 和 Heritrix 本身的功能都极其强大,且扩展性良好,是本系统用到的核心技术。2)开发工具方面Java 和
40、 JSP 具有强大的平台无关性, “一次编写,到处运行” ,开发出的系统可移植性强;MySQL 数据库安全性好,功能全面,可扩展性强,且数据处理能力强,第三章:搭建游戏垂直搜索引擎12这两种技术能够完成系统的各项要求,充分保证系统的各项指标。3)后台数据来源搜索引擎中信息的质量的高低将直接影响到搜索效果,因此需要寻找信息量大,品牌齐全的几个游戏网站。精选的几个游戏网站基本都提供游戏相关信息查询,利用 Heritrix 抓取网站上游戏信息,经过解析后,存入后台数据库。3.4 需 求 分 析互联网已在人们生活中扮演越来越重要的角色,网络信息资源的爆炸式增长使得人们获得有用信息日益困难,垂直搜索引擎
41、应运而生。在浩如烟海的信息世界里,用户想要快速找到所需资源,搜索引擎是不可缺少的。当今讲究垂直搜索的时代,空泛的信息已经不再是搜索的首选,用户更希望看到经过妥善整理和分类的有价值的信息。把用户最需要的放在最显眼的位置,次需要的放置到更多页面,不需要的删除。如今各大门户网站都提供游戏信息查询,但是多余信息比较多,为了方便用户查询,那些多余的信息完全可以删除,用户比较关心是有关游戏介绍的详细参数。设计构建一个关于游戏的搜索引擎,让用户在网站上搜索其需要的游戏信息,并能从搜索结果中打开一个有关详细信息的页面进行浏览。在系统的网站中,游戏信息是从新浪游戏、17173 和迅雷游戏上利用爬虫抓取到的。这几
42、个网站的信息量都非常大,介绍也比较齐全,可以满足用户的搜索需求。利用 Heritrix 爬虫抓取这些游戏页面,在本地建立镜像文件,然后利用HTMLParser 这个工具解析网页内容。需要解析相关的信息内容。将这些信息插入到MySQL 数据库中,并为数据库中的信息按 id 号建立索引。 有一个页面来为用户提供搜索服务。返回搜索结果的页面采用 JSP 技术动态生成,并能在结果页面中打开一个有关其详细介绍的页面进行浏览。游戏垂直搜索引擎 -基于 Heritrix 网络爬虫的搜索引擎 DEMO 系统133.5 系 统 总 体 结 构 图图 3.1 系统总体结构图3.6 功 能 模 块 分 析3.6.1
43、 后台数据处理模块1) 网 络 爬 虫 模 块分 析 这 几 个 游 戏 网 站 的 内 容 , 准 备 网 页 的 抓 取 清 单 , 然 后 提 交 给Heritrix, 作 为 种 子 进 行 抓 取 。 Heritrix 现 有 的 功 能 组 件 , 还 不 能 够 准 确 的抓 取 需 要 的 页 面 , 因 此 要 对 Heritrix 进 行 扩 展 , 以 实 现 所 需 要 的 抓 取 。2) 网 页 解 析 模 块结 合 使 用 HTMLParser 提 供 的 相 关 API 和 JDK 中 的 正 则 表 达 式 来 完 成 对 网页 的 解 析 。 解 析 生 成
44、文 件 的 格 式 按 照 特 定 格 式 进 行 保 存 。3) 数 据 库 和 索 引 模 块定 义 一 个 类 作 为 装 载 游 戏 信 息 的 值 对 象 。 数 据 库 中 定 义 一 张 表 , 最 后 还 要把 gameinfo 对 象 加 入 到 索 引 中 。WWW文档网络机器人程序建立 Lucene 索引从数据库中搜索信息Tomcat 服务器Lucene 索引数据库WWW 浏览器WWW 浏览器JSP网络机器人程序第三章:搭建游戏垂直搜索引擎143.6.2 前 台 视 图 模 块1) 搜 索 界 面 模 块提 供 搜 索 服 务 , 输 入 关 键 字 进 行 搜 索 。
45、并 有 搜 索 关 键 字 提 示 等 功 能 , 方 便检 索 。2) 结 果 界 面 模 块搜 索 结 果 的 显 示 界 面 , 对 搜 索 的 结 果 进 行 分 页 显 示 , 并 为 搜 索 结 果 提 供 超 链接 链 向 详 细 信 息 界 面 和 原 始 地 址 。3) 详 细 信 息 界 面 模 块游 戏 详 细 信 息 的 显 示 界 面 , 显 示 这 些 游 戏 介 绍 的 原 始 信 息 网 页 , 供 用 户 作进 一 步 了 解 。3.7 垂 直 搜 索 系 统 框 架图 3.2 垂 直 搜 索 系 统 框 架 图游戏垂直搜索引擎 -基于 Heritrix 网络
46、爬虫的搜索引擎 DEMO 系统153.8 Lucene 简介最初Lucene是Apache软件基金会Jakarta项目组的一个子项目,是一个完全开放源代码的全文检索工具包。Lucene在最初阶段是使用Java开发的。由于它的强大功能, Lucene逐渐被翻译成了多种语言,诸如C +、C#、Perl等。Lucene不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,它为数据访问和管理提供了简单的函数调用接口,可以方便地嵌入到各种应用中实现针对应用的全文索引/检索功能。3.8.1 Lucene 系 统 结 构 和 功 能 分 析Lucene系统结构如图3.3所示
47、。图 3.3 系 统 结 构 和 源 代 码 组 织 结 构 图Lucene作为一个优秀的全文检索引擎,其系统结构运用了大量的面向对象的设计思想。首先是定义了一个与平台无关的索引文件格式,其次通过抽象将系统的核心组成部分设计为抽象类,具体的平台部分设计为抽象类,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象编程的处理,最终达到了一个低耦合、高效率、容易二次开发等的检索引擎系统。从图3.3可以清楚地看到,Lucene系统是由基础结构封装、索引核心、对外接口3大部分组成。其中直接操作索引文件的索引核心又是系统的重点,索引的最后结果第三章:搭建游戏垂直搜索引擎16就是产生许多的索
48、引文件,这些索引文件构成索引库。Lucene系统将所有源码分为了7个模块(在Java语言中以包即package来表示) ,各个模块(包)完成特定的功能:表 3-1:Lucene 包结构功能表3.8.2 Lucene 全 文 检 索 的 实 现 机 制 及 步 骤Lucene的API接口设计得比较通用,输入输出结构都很像数据库的表、记录和字段,所以很多传统的应用的文件、数据库都可以比较方便地映射到Lucene的存储结构或接口中。总体上看,可以先把Lucene当成一个支持全文索引的数据库系统。其索引/检索过程如图3.4所示。图 3.4 检 索 系 统 原 理游戏垂直搜索引擎 -基于 Heritri
49、x 网络爬虫的搜索引擎 DEMO 系统17在Lucene中,待索引的文件对应一个文档(Document)数据结构,每个Document包含多个字段( Field) 。Lucene根据Docu2ment对象中的字段属性和数据输出的要求,为字段选择不同的索引/存储字段规则。总的来说, Lucene实现全文检索功能有以下3个步骤:(1) 建立索引 建立索引是全文检索的基础。检索时通常采用倒排文档( invert document)的方式来进行。也就是说,可以将一本书中的文字分成一个个词条,将每个词条所出现在书中的页码记录在词条后面。这样,用户需要查找该词条时,只要找到词条就可以根据词条后的页码找到所有该词条出现的位置。(2) 查找索引 当索引建立好后,就可以对其进行查找了。Lucene所建立的索引是存放在文件系统中的,因此,查找索引时,需要首先将文件打开读入内存。(3) 更新索引 由于实际的内容是不断更新的。因此,索引的内容也需要不断更新。Lucene同样提供了丰富的功能来支持索引的更新功能。3.8.3 Lucene 索 引 的 建 立1) Document 逻 辑 文 件Lucene 本 身 无 法 对 物 理 文