基于RSS的企业Web搜索引擎研究与设计 第一章绪论 原因,是基于P山ll模式信息采集技术自身难以克服的问题之一。 要从根本上解决此问题,就需要采用Push模式采集信息,把一点到多点的 遍历采集方式转变为多点到一点的推送方式,从而达到信息的实时采集,定向定 量采集,降低系统部署和运行成本的效果。 因此,本文提出一种基于Push模式的RSS技术进行信息采集的搜索引擎模 型,同时结合企业应用需求,设计一个实效性强、部署运行成本低、高质量的企 业级Web搜索引擎。 1.4.3论文的组织 以搜索引擎的各组成部分为主线,依次对中文分词、数据索引和数据检索部 分web搜索引擎关键技术的工作原理、工作流程、设计方法等进行了详细的探 讨,同时结合企业搜索引擎的特点对部分技术进行重点研究和改进。然后论文从 总体上给出对基于RSS的企业Web搜索引擎的设计。 第1章概述搜索引擎和企业搜索引擎的国内外发展现状,搜索引擎基本结 构,提出问题和解决问题的思路。 第2章介绍RSS技术,剖析RSS相关技术标准,对RSS不同版本进行比较 研究,论述RSS技术在信息采集上的特点和优势。 第3章论述基于RSS的搜索引擎信息自动采集技术,提出一种基于元搜索 的 RSS Feed自动搜集技术。 第4章对中文自动分词和数据索引相关技术进行研究,结合企业应用的需 求,对分词技术和索引技术进行改进。 第5章概述了常用的数据检索模型,分析各自的优缺点。对检索模型及其实 现方法进行重点阐述。论述增强用户检索效率和质量的方法 第6章用流程图对整体实现过程进行说明,对系统整体进行模块划分,并详 细说明了各子模块的功能。介绍实现中用到的主要数据结构并给出了部分测试结 果 第7章总结全文,指出本文设计中的不足之处并对后续的研究工作提出了展 第6页共47页
基于 RSS 的企业 Web 搜索引擎研究与设计 第一章 绪 论 第 6 页 共 47 页 原因,是基于 Pull 模式信息采集技术自身难以克服的问题之一。 要从根本上解决此问题,就需要采用 Push 模式采集信息,把一点到多点的 遍历采集方式转变为多点到一点的推送方式,从而达到信息的实时采集,定向定 量采集,降低系统部署和运行成本的效果。 因此,本文提出一种基于 Push 模式的 RSS 技术进行信息采集的搜索引擎模 型,同时结合企业应用需求,设计一个实效性强、部署运行成本低、高质量的企 业级 Web 搜索引擎。 1.4.3 论文的组织 以搜索引擎的各组成部分为主线,依次对中文分词、数据索引和数据检索部 分 Web 搜索引擎关键技术的工作原理、工作流程、设计方法等进行了详细的探 讨,同时结合企业搜索引擎的特点对部分技术进行重点研究和改进。然后论文从 总体上给出对基于 RSS 的企业 Web 搜索引擎的设计。 第 1 章概述搜索引擎和企业搜索引擎的国内外发展现状,搜索引擎基本结 构,提出问题和解决问题的思路。 第 2 章介绍 RSS 技术,剖析 RSS 相关技术标准,对 RSS 不同版本进行比较 研究,论述 RSS 技术在信息采集上的特点和优势。 第 3 章论述基于 RSS 的搜索引擎信息自动采集技术,提出一种基于元搜索 的 RSS Feed 自动搜集技术。 第 4 章对中文自动分词和数据索引相关技术进行研究,结合企业应用的需 求,对分词技术和索引技术进行改进。 第 5 章概述了常用的数据检索模型,分析各自的优缺点。对检索模型及其实 现方法进行重点阐述。论述增强用户检索效率和质量的方法。 第 6 章用流程图对整体实现过程进行说明,对系统整体进行模块划分,并详 细说明了各子模块的功能。介绍实现中用到的主要数据结构并给出了部分测试结 果。 第 7 章总结全文,指出本文设计中的不足之处并对后续的研究工作提出了展 望
基于RSS的企业Web搜索引擎研究与设计 第二章RSS技术 第二章RRS技术 2.1RSS的概念 RSS是基于Push技术,用于聚合信息的内容包装和投递格式。其名称具体是 哪些英文首字母的缩写有着不同的说法: Really simple Syndication(真正简单的 聚合)、 RDF SIte Summary(RDF站点摘要)、 Rich Site Summary(丰富站点摘要) 从本质上看,RSS是一种基于XML格式的信息聚合的技术,提供一种更为方便、高 效的互联网信息的发布和共享,用于为内容整合客户端提供选择过的、汇总过的 Web内容。更准确地说,RSS是一种“轻量级、多用途、可扩展的元数据描述及内 容聚合推广格式 2.2RSS版本和技术标准研究 RSS有多种版本:0.90、0.91、0.92、0.93、0.94、1.0和2.0。要研究这 些版本之间的差别需要了解一些有关它们的历史背景。 2.2.1RsS版本区别 RSS是 Netscape创建的,1999年 Netscape推出了一项新的功能:新闻频道。 Netscape想利用此功能建设主流新闻网站的头条新闻门户,为此 Netscape定义了 套描述新闻频道的语言,并取名为“ RDF SIte si 或者“ Rich site ry”,即RSo.9。与此同时微软的IE4( Internet Explorer40)也推出了新 闻频道功能,与 Netscape的新闻频道很相似,不过它采用的是支持IE4的CDF ( Channel definition format),微软试图用新闻频道的功能把“推”(Push)技术变 成一个应用主流,而与 Netscape抗衡,不过新闻频道的发展后来进入了低谷。 戴夫温那( Dave winner)的 Userland Software公司接手RSSs后,继续开发RSS新 的版本以适应新的网络应用需要,这种新的网络应用就是Blog,RSS成为 Userland的 weblog产品和其他基于Web的软件的基础,而得到了日益广泛的应 用 由于版本0.90在很大程度上基于W3C的 Resource Description Framework (RDF)。很多使用者认为RDF过于复杂,因此都建议将RSS简化, Userland Software在0.90的基础上,推出一个免费的简化版本0.91。随后出台的版本包 第7页共47页
基于 RSS 的企业 Web 搜索引擎研究与设计 第二章 RSS 技术 第 7 页 共 47 页 第二章 RRS 技术 2.1 RSS 的概念 RSS是基于Push技术,用于聚合信息的内容包装和投递格式。其名称具体是 哪些英文首字母的缩写有着不同的说法:Really Simple Syndication(真正简单的 聚合)、RDF Site Summary (RDF 站点摘要)、Rich Site Summary (丰富站点摘要)。 从本质上看,RSS是一种基于XML格式的信息聚合的技术,提供一种更为方便、高 效的互联网信息的发布和共享,用于为内容整合客户端提供选择过的、汇总过的 Web内容。更准确地说,RSS是一种“轻量级、多用途、可扩展的元数据描述及内 容聚合推广格式”[5]。 2.2 RSS 版本和技术标准研究 RSS 有多种版本:0.90、0.91、0.92、0.93、0.94、1.0 和 2.0。要研究这 些版本之间的差别需要了解一些有关它们的历史背景。 2.2.1 RSS 版本区别 RSS 是 Netscape 创建的,1999 年 Netscape 推出了一项新的功能:新闻频道。 Netscape 想利用此功能建设主流新闻网站的头条新闻门户,为此 Netscape 定义了 一套描述新闻频道的语言,并取名为“RDF Site Summary”或者“Rich Site Summary”,即 RSS 0.9。与此同时微软的 IE4(Internet Explorer 4.0)也推出了新 闻频道功能,与 Netscape 的新闻频道很相似,不过它采用的是支持 IE4 的 CDF (Channel definition format),微软试图用新闻频道的功能把“推”(Push)技术变 成一个应用主流,而与 Netscape 抗衡,不过新闻频道的发展后来进入了低谷。 戴夫温那(Dave Winner)的 Userland Software 公司接手 RSS 后,继续开发 RSS 新 的版本以适应新的网络应用需要,这种新的网络应用就是 Blog,RSS 成为 Userland 的 weblog 产品和其他基于 Web 的软件的基础,而得到了日益广泛的应 用。 由于版本 0.90 在很大程度上基于 W3C 的 Resource Description Framework (RDF)。很多使用者认为 RDF 过于复杂,因此都建议将 RSS 简化,Userland Software 在 0.90 的基础上,推出一个免费的简化版本 0.91。随后出台的版本包
基于RSS的企业Web搜索引擎研究与设计 第二章RSS技术 括:0.92、0.93和0.94。为了强调其所做的简化工作,他们将RSS的全称定为 “ Really Simple Syndication”。 正当 Userland Software不断地对RSS进行简化工作时,另外一个非商业的 第三方组织( RSS DEV working group)在复兴最初的RDF版本的RSS(0.90), 因为号称比0.9x系列更灵活。他们最终发布了一个RSS1.0的版本,其正式名 称还是“ RDF SIte Summary”。由于使用RDF,这个版本完全不同于 Userland Software所控制的版本。 Userland Software不太愿意看到RSS1.0似乎要取代 其0.94版本的事实,于是出了一个新版本,并将版本号一下子跳到了2.0 这就形成了两个主要版本的RSS竞争的局面:一个基于RDF1.0,而另 个则不是(0.9x/2.0),但它们两个都共用相同的名字。这种版本号混乱容易导 致人们误认为2.0是1.0的改进版本,而实际上它们是两个不同的规范。RSS1.0 的意义在于可以利用大量的RDF工具和模块。但是从RSS目前使用的领域来看, 1.0标准相对复杂,2.0则更为简单实用;从既有资源而言,RSS0.9x/2.0继续 占有绝对优势 表2-1Rss各版本的比较 版本所有者 简介 现状 Netscape 被1.0弃用 0.91| Userland相当简单 被2.0正式弃用,但是仍然相当流行 可方便地移植到2.0 0.92, 0.93, gerland/比0.91拥有更丰富的元\己被20替代 数据 RSS-DEV 1.0 Work 基于RDF,可通过模块扩基于RF结构,可以利用大量的RDF工具 展,不受单一所有者控制和模块。 可通过模块扩展,可方便用于一般目的的聚合功能,拥有更为丰富 2.0 UserLand 地从0.9x移植 L的元数据应用。 2.2.2RSS1.0与RSs0.9X/2.0的比较研究 RSS1.0和0.9x/2.0格式所包含的核心内容基本相同,但其在结构、元数 据使用和命名空间上还是有所区别 (1)结构上的区别。首先两种格式在根元素的使用上有差异,RSS1.0的根 元素是rdf:RDF;而RSS0.9x/2.0的根元素是rs,而且还包含一个强制版本 属性用以表示所用的RSs的准确格式。其实结构上最主要的区别在于tem、 Image 第8页共47页
基于 RSS 的企业 Web 搜索引擎研究与设计 第二章 RSS 技术 第 8 页 共 47 页 括:0.92、0.93 和 0.94。为了强调其所做的简化工作,他们将 RSS 的全称定为 “Really Simple Syndication”。 正当 Userland Software 不断地对 RSS 进行简化工作时,另外一个非商业的 第三方组织(RSS DEV working group)在复兴最初的 RDF 版本的 RSS(0.90), 因为号称比 0.9x 系列更灵活。他们最终发布了一个 RSS 1.0 的版本,其正式名 称还是“RDF Site Summary”。由于使用 RDF,这个版本完全不同于 Userland Software 所控制的版本。Userland Software 不太愿意看到 RSS 1.0 似乎要取代 其 0.94 版本的事实,于是出了一个新版本,并将版本号一下子跳到了 2.0。 这就形成了两个主要版本的 RSS 竞争的局面:一个基于 RDF 1.0,而另一 个则不是(0.9x/2.0),但它们两个都共用相同的名字。这种版本号混乱容易导 致人们误认为 2.0 是 1.0 的改进版本,而实际上它们是两个不同的规范。RSS 1.0 的意义在于可以利用大量的 RDF 工具和模块。但是从 RSS 目前使用的领域来看, 1.0 标准相对复杂,2.0 则更为简单实用;从既有资源而言,RSS 0.9x/2.0 继续 占有绝对优势。 表 2-1 RSS 各版本的比较 版本 所有者 简介 现状 0.90 Netscape 被 1.0 弃用 0.91 UserLand 相当简单 被 2.0 正式弃用,但是仍然相当流行 可方便地移植到 2.0 0.92, 0.93, 0.94 UserLand 比 0.91 拥有更丰富的元 数据 已被 2.0 替代。 1.0 RSS-DEV Working Group 基于 RDF,可通过模块扩 展,不受单一所有者控制 基于 RDF 结构,可以利用大量的 RDF 工具 和模块。 2.0 UserLand 可通过模块扩展,可方便 地从 0.9x 移植 用于一般目的的聚合功能,拥有更为丰富 的元数据应用。 2.2.2 RSS 1.0 与 RSS 0.9x/2.0 的比较研究 RSS 1.0 和 0.9x/2.0 格式所包含的核心内容基本相同,但其在结构、元数 据使用和命名空间上还是有所区别: (1)结构上的区别。首先两种格式在根元素的使用上有差异,RSS 1.0 的根 元素是 rdf:RDF;而 RSS 0.9x/2.0 的根元素是 rss,而且还包含一个强制版本 属性用以表示所用的 RSS 的准确格式。其实结构上最主要的区别在于 item、image
基于RSS的企业Web搜索引擎研究与设计 第二章RSS技术 和 textinput节点的表示形式。在RSS1.0中, channel元素包含了对item、 Image 和 textinput节点的引用,这些节点存在于 channel节点之外。这样在 channel和 所引用的节点之间就建立了一种RDF关联。而RSS2.0中,item节点只是在 channel元素中连续排放,它包含实际的信息。但item的结构在两个版本中是相 同的 (2)元素使用上的区别。两个版本都包含 channel元素,而 channel元素又包 含了下面三个必要的元素: title、 description和link。除了这些必要的元素外, RSS1.0还定义了3个附加元素: Image、tems和 textinput,其中,mage和 textinput 是可选项。RSS1.0允许通过定义在单独的XML名字空间中的可扩展元素来创 建这种类型的元数据。而RSS2.0则提供了16个附加元素,除了 Image、tems 和 textinput外,还有 language、 copyright、 managingEditor、 pubDate和 category (3)命名空间( XML-namespace)上的区别。RSS1.0文档有名字空间限定, RSS2.0文档就没有。RSS1.0可以通过XML—namespace机制复用其他元数 据集来扩展自己的元素和功能。目前直接复用在RSS上的元数据集(命名域)是 Dublin Core FA Syndication 2.2.3技术标准之争 RSS两大系列之间的竞争还在持续,一个新的标准又加入到竞争行列:Atom 针对RSS的版本混乱、不是一个真正的开放标准,表示方法的不一致、定义贫乏 等等问题,以IBM软件工程师 Sam Ruby为首的另一组开发人员提出的一种与RSS 相似的格式,其原理和RSS基本一致,目的都在于为 Weblog、新闻或是其他Web 内容创建XM文本,以便其他站点引用,这个解决方案称为Atom项目。Atom通过 定义新的摘要( syndication)规范来与RSS名字的随意性决裂。RSS与Atom之间的 竞争自2003年夏季以来已将博客世界分裂为两大阵营。特别是搜索巨头 Google 收购了 Blogger. co后,于2004年初宣布其 Blogger服务放弃RSS格式而选择了 Atom,此举进一步加剧了这一技术的标准之争。2005年7月15日,在Atom0.3的 基础上Atom1.0(草案)出台。与Atom0.3比较,1.0更加清晰和简单;与RSS2.0 相比更复杂,而适应能力更强 但是由于RSS已经使用了相当长的一段时间,用户众多:加之与RSS相比,Atom 1.0并无巨大优势。因此RSS和Atom1.0将在今后相当长的一段时间内长期共存 第9页共47页
基于 RSS 的企业 Web 搜索引擎研究与设计 第二章 RSS 技术 第 9 页 共 47 页 和 textinput 节点的表示形式。在 RSS 1.0 中,channel 元素包含了对 item、image 和 textinput 节点的引用,这些节点存在于 channel 节点之外。这样在 channel 和 所引用的节点之间就建立了一种 RDF 关联。而 RSS 2.0 中,item 节点只是在 channel 元素中连续排放,它包含实际的信息。但 item 的结构在两个版本中是相 同的。 (2)元素使用上的区别。两个版本都包含 channel 元素,而 channel 元素又包 含了下面三个必要的元素:title、description 和 link。除了这些必要的元素外, RSS 1.0 还定义了 3 个附加元素:image、items 和 textinput,其中,image 和 textinput 是可选项。RSS 1.0 允许通过定义在单独的 XML 名字空间中的可扩展元素来创 建这种类型的元数据。而 RSS 2.0 则提供了 16 个附加元素,除了 image、items 和 textinput 外,还有 language、copyright、managingEditor、pubDate 和 category 等。 (3)命名空间(XML-namespace)上的区别。RSS 1.0 文档有名字空间限定, RSS 2.0 文档就没有。RSS 1.0 可以通过 XML—namespace 机制复用其他元数 据集来扩展自己的元素和功能。目前直接复用在 RSS 上的元数据集(命名域)是 Dublin Core 和 Syndication。 2.2.3 技术标准之争 RSS两大系列之间的竞争还在持续,一个新的标准又加入到竞争行列:Atom。 针对RSS的版本混乱、不是一个真正的开放标准,表示方法的不一致、定义贫乏 等等问题,以IBM软件工程师Sam Ruby为首的另一组开发人员提出的一种与RSS 相似的格式,其原理和RSS基本一致,目的都在于为Weblog、新闻或是其他Web 内容创建XML文本,以便其他站点引用,这个解决方案称为Atom项目。Atom通过 定义新的摘要(syndication)规范来与RSS名字的随意性决裂。RSS与Atom之间的 竞争自2003年夏季以来已将博客世界分裂为两大阵营。特别是搜索巨头Google 收购了Blogger.com后,于2004年初宣布其Blogger服务放弃RSS格式而选择了 Atom,此举进一步加剧了这一技术的标准之争。2005年7月15日,在Atom0.3的 基础上Atom 1.0(草案)出台。与Atom 0.3比较,1.0更加清晰和简单;与RSS 2.0 相比更复杂,而适应能力更强[4]。 但是由于RSS已经使用了相当长的一段时间,用户众多;加之与RSS相比,Atom 1.0并无巨大优势。因此RSS和Atom 1.0将在今后相当长的一段时间内长期共存
基于RSS的企业Web搜索引擎研究与设计 第二章RSS技术 不论是RSS1.0、0.9X/2.0系列,还是Atom系列,其原理和应用是基本一致 的,只是表现形式有所不同。因此,一些专业人士正在积极促进它们合并,达成 统一格式。 2.3RSS元素定义及用法 由于RSS2.0是目前应用最为广泛的版本,本文就以2.0为例介绍RSS元 素定义及具体用法 rss>元素的子元素是唯一的一个< channel>元素,它包含了关于该频道的信 息(元数据)和内容。 表2-2必需的 channe1子元素列表 元素 简要说明 title 频道的名称 link 与该频道关联的Web站点或者站点区域的URL description 对频道的一段简单描述,简要介绍频道 表2-3可选的 channel子元素的列表 元素 简要说明 频道使用的语言种类,例如简体中文是zh-cn。可以使W3C language 预定义的值 copyright 频道内容的版权声明 managingEditor对该频道内容负责的个人的Emai地址 webMaster 对该频道的技术支持负责的个人的Emai1地址 频道内容的公布日期。日期时间遵守RFC822规范 last BuildDate上次频道内容更改的时间 category 说明频道属于哪一个或多个分类 generator 说明用于生成该频道的程序 OCS 十Rss文件所使用格式的说明文档所在的URL cloud 允许进程注册为“ cloud”,频道更新时通知它 ttl ttl代表存活时间,表示提要在刷新之前缓冲的分钟数 image 「指定一个能在频道中显示的GIF、JPEG或PNG图像 关于该频道的PICS评价 textInput 定义可与频道一起显示的输入框 skipHours 告诉聚集器哪些小时的更新可以忽略 skipDays 告诉聚集器那一天的更新可以忽略 <item>元素:一个频道可以包括任意个数的<item>。一个项<item>代表一个 信息的实体, description就是这个信息的简要描述,1ink指向这个信息网页 第10页共47页
基于 RSS 的企业 Web 搜索引擎研究与设计 第二章 RSS 技术 第 10 页 共 47 页 不论是RSS 1.0、0.9x/2.0系列,还是Atom系列,其原理和应用是基本一致 的,只是表现形式有所不同。因此,一些专业人士正在积极促进它们合并,达成 统一格式。 2.3 RSS 元素定义及用法 由于 RSS 2.0 是目前应用最为广泛的版本,本文就以 2.0 为例介绍 RSS 元 素定义及具体用法。 <rss>元素的子元素是唯一的一个<channel>元素,它包含了关于该频道的信 息(元数据)和内容。 表 2-2 必需的 channel 子元素列表 元素 简要说明 title 频道的名称 link 与该频道关联的 Web 站点或者站点区域的URL description 对频道的一段简单描述,简要介绍频道 表 2-3 可选的 channel 子元素的列表: 元素 简要说明 language 频道使用的语言种类,例如简体中文是 zh-cn。可以使 W3C 预定义的值 copyright 频道内容的版权声明 managingEditor 对该频道内容负责的个人的 Email 地址 webMaster 对该频道的技术支持负责的个人的 Email 地址 pubDate 该频道内容的公布日期。日期时间遵守 RFC 822 规范 lastBuildDate 上次频道内容更改的时间 category 说明频道属于哪一个或多个分类 generator 说明用于生成该频道的程序 docs RSS 文件所使用格式的说明文档所在的 URL。 cloud 允许进程注册为“cloud”,频道更新时通知它 ttl ttl 代表存活时间,表示提要在刷新之前缓冲的分钟数 image 指定一个能在频道中显示的 GIF、JPEG 或 PNG 图像 rating 关于该频道的 PICS 评价 textInput 定义可与频道一起显示的输入框 skipHours 告诉聚集器哪些小时的更新可以忽略 skipDays 告诉聚集器那一天的更新可以忽略 <item>元素:一个频道可以包括任意个数的<item>。一个项<item>代表一个 信息的实体,description 就是这个信息的简要描述, link 指向这个信息网页