快速业务通道

dySE:一个Java搜索引擎的实现,第2部分 网页预处理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
项 目名,选属性(properties),再选 java 构建路径(java Build Path),后在右侧点 (libraries),选 add external JARs,之后选择你要导入的 jar 包确定。

接着就可以用代码来测试与 mySql 的连接了,代码见本文附带的 testMySql.java 程序,这里限于篇幅就不在赘述。

对于数据库的操作,我们最好进行一定的封装,以提供统一的数据库操作支 持,而不需要在其他的类中显示的进行数据库连接操作,而且这样也就不需要建 立大量的数据库连接从而造成资源的浪费,代码详见 DBConnection.java。主要 提供的操作是:建立连接、执行 SQL 语句、返回操作结果。

介绍了数据库的相关操作时候,现在我们可以来完成网页索引库的建立过程 。这里要说明的是,第一条记录的偏移是 0,所以在当前记录 record 处理之前 ,该记录的偏移是已经计算出来的,处理 record 的意义在于获得下一个记录在 网页库中的偏移。假设当前 record 的偏移为 offset,定位于头部的第一条属 性之前,我们通过读取记录的头部和记录的数据部分来得到该记录的长度 length,从而,offset+length 即为下一条记录的偏移值。读取头部和读取记录 都是通过数据间的空行来标识的,其伪代码如下:

清单 2. 索引网页库建立

For each record in Raws do begin    读取 record 的头部和数据,从头部中抽取 URL;    计算头部和数据的长度,加到当前偏移值上得到新的偏移;    从 record 中数据中计算其 MD5 摘要值;    将数据插入数据库中,包括:URL、偏移、数据 MD5 摘要、Raws; end;

您可能会对 MD5 摘要算法有些疑惑,这是什么?这有什么用? Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛 使用的一种散列函数,用以提供消息的完整性保护。MD5 的典型应用是对一段信 息 (Message) 产生一个 128 位的二进制信息摘要 (Message-Digest),即为 32 位 16 进制数字串,以防止被篡改。对于我们来说,比如通过 MD5 计算,某个 网页数据的摘要是 00902914CFE6CD1A959C31C076F49EA8,如果我们任意的改变 这个网页中的数据,通过计算之后,该摘要就会改变,我们可以将信息的 MD5 摘要视作为该信息的指纹信息。所以,存储该摘要可以验证之后获取的网页信息 是否与原始网页一致。

对 MD5 算法简要的叙述可以为:MD5 以 512 位分组来处理输入的信息,且 每一分组又被划分为 16 个 32 位子分组,经过了一系列的处理后,算法的输出 由四个 32 位分组组成,将这四个 32 位分组级联后将生成一个 128 位散列值 。其中“一系列的处理”即为计算流程,MD5 的计算流程比较多,但是不难,同 时也不难实现,您可以直接使用网上现有的 java 版本实现或者使用本教程提供 的源码下载中的 MD5 类。对于 MD5,我们知道其功能,能使用就可以,具体的 每个步骤的意义不需要深入理解。

dySE:一个Java搜索引擎的实现,第2部分 网页预处理(3)

时间:2010-11-20 IBM 董宇

正文信息抽取

PageGetter

在正文信息抽取之前,我们首先需要一个简单的工具类,该工具类可以取出 数据库中的内容并且去原始网页集中获得网页信息,dySE 对于该功能的实现在 originalPageGetter.java 中,该类通过 URL 从数据库中获得该 URL 对应的网 页数据的所在网页库名以及偏移,然后就可以根据偏移来读取该网页的数据内容 ,同样以原始网页集中各记录间的空行作为数据内容的结束标记,读取内容之后 ,通过 MD5 计算当前读取的内容的摘要,校验是否与之前的摘要一致。对于偏 移的使用,BufferedReader 类提供一个 skip(int offset) 的函数,其作用是 跳过文档中,从当前开始计算的 offset 个字符,用这个函数我们就可以定位到 我们需要的记录。

清单

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号