`
hizhangqi
  • 浏览: 87259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nutch介绍--nutch中文网

阅读更多

转自:nutch中文网,http://www.nutchchina.com/index.php?option=com_content&task=view&id=1&Itemid=1

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。可以为什么我们需要建立自己的搜索引擎呢?毕竟我们已经有google可以使用。这里我列出3点原因:
透明度:Nutch是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。因此 Nutch 对学术搜索和政府类站点的搜索来说,是个好选择。因为一个公平的排序结果是非常重要的。 Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。可以为什么我们需要建立自己的搜索引擎呢?毕竟我们已经有google可以使用。这里我列出3点原因:

透明度:Nutch是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。因此 Nutch 对学术搜索和政府类站点的搜索来说,是个好选择。因为一个公平的排序结果是非常重要的。
对搜索引擎的理解:我们并没有google的源代码,因此学习搜索引擎Nutch是个不错的选择。了解一个大型分布式的搜索引擎如何工作是一件让人很受益的事情。在写Nutch的过程中,从学院派和工业派借鉴了很多知识:比如:Nutch的核心部分目前已经被重新用 Map Reduce 实现了。看过开复演讲的人都知道 Map Reduce 的一点知识吧。Map Reduce 是一个分布式的处理模型,最先是从 Google 实验室提出来的。你也可以从下面获得更多的消息。
http://www.domolo.com/bbs/list.asp?boardid=29
http://domolo.oicp.net/bbs/list.asp?boardid=29
并且 Nutch 也吸引了很多研究者,他们非常乐于尝试新的搜索算法,因为对Nutch 来说,这是非常容易实现扩展的。
扩展性:你是不是不喜欢其他的搜索引擎展现结果的方式呢?那就用 Nutch 写你自己的搜索引擎吧。 Nutch 是非常灵活的:他可以被很好的客户订制并集成到你的应用程序中:使用Nutch 的插件机制,Nutch 可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成Nutch到你的站点,为你的用户提供搜索服务。
Nutch 的安装分为3个层次:基于本地文件系统,基于局域网,或者基于 internet 。不同的安装方式具有不同的特色。比如:索引一个本地文件系统相对于其他两个来说肯定是要稳定多了,因为没有 网络错误也不同缓存文件的拷贝。基于Internet 的搜索又是另一个极端:抓取数以千计的网页有很多技术问题需要解决:我们从哪些页面开始抓取?我们如何分配抓取工作?何时需要重新抓取?我们如何解决失效的链接,没有响应的站点和重复的内容?还有如何解决对大型数据的上百个并发访问?搭建这样一个搜索引擎是一笔不小的投资呀!在 " Building Nutch: Open Source Search," 的作者 Mike Cafarella 和 Doug Cutting 总结如下::

... 一个具有完全功能的搜索系统:1亿页面索引量,每秒2个并发索引,需要每月800美元。10亿页面索引量,每秒50个页面请求,大概需要每月30000美元。

这篇文章将为你演示如何在中等级别的网站上搭建Nutch。第一部分集中在抓取上。Nutch的抓取架构,如何运行一个抓取程序,理解这个抓取过程产生了什么。第二部分关注搜索。演示如何运行Nutch搜索程序。以及如何订制Nutch 。

Nutch Vs. Lucene

Nutch 是基于 Lucene的。Lucene为 Nutch 提供了文本索引和搜索的API。一个常见的问题是;我应该使用Lucene还是Nutch?最简单的回答是:如果你不需要抓取数据的话,应该使用 Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面。在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API建立索引。中文用户,可以参考 WebLucene 或者 车东 的一些列文章。如果需要中文分词帮助还可以联系作者。 http://domolo.oicp.net/bbs/list.asp?boardid=24 Erik Hatcher 和 Otis Gospodnetić's 的 Lucene in Action 中详细讲述了这个过程。Nutch 适用于你无法直接获取数据库中的网站,或者比较分散的数据源的情况下使用。

架构

总体上Nutch可以分为2个部分:抓取部分和搜索部分。抓取程序抓取页面并把抓取回来的数据做成反向索引,搜索程序则对反向索引搜索回答用户的请求。抓取程序和搜索程序的接口是索引。两者都使用索引中的字段。()

实际上搜索程序和抓取程序可以分别位于不同的机器上。()

这里我们先看看Nutch的抓取部分。

抓取程序:

抓取程序是被Nutch的抓取工具驱动的。这是一组工具,用来建立和维护几个不同的数据结构: web database, a set of segments, and the index。下面我们逐个解释上面提到的3个不同的数据结构。

The web database, 或者WebDB, 是一个特殊存储数据结构,用来映像被抓取网站数据的结构和属性的集合。WebDB 用来存储从抓取开始(包括重新抓取)的所有网站结构数据和属性。WebDB 只是被 抓取程序使用,搜索程序并不使用它。WebDB 存储2种实体:页面 和 链接。页面 表示 网络上的一个网页,这个网页的Url作为标示被索引,同时建立一个对网页内容的MD5 哈希签名。跟网页相关的其它内容也被存储,包括:页面中的链接数量(外链接),页面抓取信息(在页面被重复抓取的情况下),还有表示页面级别的分数 score 。链接 表示从一个网页的链接到其它网页的链接。因此 WebDB 可以说是一个网络图,节点是页面,链接是边。

Segment 是 网页 的集合,并且它被索引。 Segment 的 Fetchlist 是抓取程序使用的 url 列表 , 它是从 WebDB中生成的。Fetcher 的输出数据是从 fetchlist 中抓取的网页。Fetcher 的输出数据先被反向索引,然后索引后的结果被存储在segment 中。 Segment 的生命周期是有限制的,当下一轮抓取开始后它就没有用了。默认的 重新抓取间隔是30天。因此删除超过这个时间期限的segment是可以的。而且也可以节省不少磁盘空间。Segment 的命名是 日期加时间 ,因此很直观的可以看出他们的存活周期。

索引库 是 反向索引所有系统中被抓取的页面,他并不直接从页面反向索引产生,它是合并很多小的 segment 的索引中产生的。Nutch 使用 Lucene 来建立索引,因此所有 Lucene 相关的工具 API 都用来建立索引库。需要说明的是 Lucene 的 segment 的概念 和 Nutch 的 segment 概念是完全不同的,不要混淆哦。 可以参考 车东 的相关文章。 www.chedong.com 简单来说 Lucene 的 segment 是 Lucene 索引库的一部分,而 Nutch 的 Segment 是 WebDB 中 被 抓取和索引的一部分。

本页地址:http://blog.csdn.net/liyang23456/archive/2007/04/23/1576596.aspx

分享到:
评论

相关推荐

    Nutch中文分词插件的编写与配置

    Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的...下面介绍Nutch中文分词插件的实现与配置。

    nutch 初学文档教材

    3.1 爬行企业内部网....7 3.1.1 配置nutch....7 3.1.2 配置tomcat..8 3.1.3 执行抓取命令......9 3.1.4 测试结果...11 3.1.5 Intranet Recrawl..13 3.2 爬行全网.....18 3.2.1 nutch数据集的基本组成:.....18 3.2.2 ...

    Nutch入门.rar

    3.1 爬行企业内部网....7 3.1.1 配置nutch....7 3.1.2 配置tomcat..8 3.1.3 执行抓取命令......9 3.1.4 测试结果...11 3.1.5 Intranet Recrawl..13 3.2 爬行全网.....18 3.2.1 nutch数据集的基本组成:.....18...

    基于nutch的搜索引擎的设计与实现毕业论文.docx

    基于 Nutch 的搜索引擎的设计与实现 搜索引擎技术概述 搜索引擎技术是一种通过网络检索信息的技术,目的是检索和组织网络上的信息,使用户能够快速、准确地检索到需要的信息。搜索引擎技术的发展离不开互联网的...

    Nutch:从搜索引擎到网络爬虫

    Nutch:从搜索引擎到网络爬虫。中文。

    hdfs官方设计文档(中文)

    HDFS最初是为了Apache 的Nutch网络搜索引擎项目的下层构件而设计的。是Hadoop项目的一部分,而这又是Apache的 Lucene项目的一部分。本项目的地址是:http://projects.apache.org/projects/hadoop.html。

    搜索引擎网络蜘蛛程序

    搜索引擎网络蜘蛛程序,Nutch,Lucene,Larbin,中文分词程序代码

    论文研究-面向地学信息领域垂直搜索引擎设计与实现.pdf

    垂直搜索引擎是搜索引擎领域的行业化分工,根据地学信息领域的行业特征、整体需求及其工作流程,在Nutch开源搜索引擎平台上添加了“庖丁解牛”中文分词算法、主题相关度评分算法、“主题词管理”选项等技术,建立了...

    paoding(庖丁解牛)

    庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。Paoding填补了国内中文分词方面开源组件的空白,本书介绍了在nutch上配置paoding

    6搜-高效的专用IPv6搜索引擎

    基于开源搜索引擎Nutch,通过修改、调整和创新研制了文中介绍的6搜——一个专门搜索支持IPv6协议网站的专用IPv6搜索引擎。6搜的特点和创新点有:采集IPv6网页的速度在每秒100页以上;采集了54 195个IPv6网站,存储有...

    面向高校信息的垂直搜索引擎的研究与实现 (2012年)

    方法利用Nutch网络爬虫和Lucene索引平台结合中文分词、主题预测等相关垂直搜索引擎技术,针对高等院校信息资源这一类特定领域研究和实现一款具有市场潜力的垂直搜索引擎系统.结果在基于Lucene平台和改进的Nutch开源...

    Hadoop权威指南 第二版(中文版)

     本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。全书共16章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop...

    Hadoop权威指南(中文版)2015上传.rar

    Nutch系统利用Hadoop进行数据处理的精选实例 总结 Rackspace的日志处理 简史 选择Hadoop 收集和存储 日志的MapReduce模型 关于Cascading 字段、元组和管道 操作 Tap类,Scheme对象和Flow对象 Cascading实战 灵活性 ...

    自己动手写搜索引擎(罗刚著).doc

    2.2.4 Nutch网络搜索软件 15 2.2.5 用户界面 17 2.3 商业搜索引擎技术介绍 17 2.3.1 通用搜索 17 2.3.2 垂直搜索 18 2.3.3 站内搜索 19 2.3.4 桌面搜索 21 2.4 本章小结 21 第3章 获得海量数据 22 3.1 自己的网络...

Global site tag (gtag.js) - Google Analytics