`
cz05141331
  • 浏览: 4504 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Nutch index源代码解析二)

阅读更多

接着上篇文档~~~~~

上篇文章写到,Nutch采用一个MR对爬取下来的文档进行清洗和封装成一个action列表。

接下来介绍怎么爬取下来的数据如何推送给solr。

----------------------------------------------------华丽的分割线---------------------------------------------

Ntuch自定义了一个 IndexerOutputFormat,这个类继承于FileOutputFormat Override getRecordWriter方法

代码如下:

 

public class IndexerOutputFormat extends FileOutputFormat<Text, NutchIndexAction> {

 

  @Override

  public RecordWriter<Text, NutchIndexAction> getRecordWriter(FileSystem ignored,

      JobConf job, String name, Progressable progress) throws IOException {

        ...

      }

方法里面调用Nutch自定义的一个接口NutchIndexWriter,我们看下他的一个实现类SolrWriter,我们主要看下他的close方法,代码如下:

 public void close() throws IOException {

    try {

      if (!inputDocs.isEmpty()) {

        LOG.info("Indexing " + Integer.toString(inputDocs.size()) + " documents");

        if (numDeletes > 0) {

          LOG.info("Deleting " + Integer.toString(numDeletes) + " documents");

        }

        UpdateRequest req = new UpdateRequest();

        req.add(inputDocs);

        req.setParams(params);

        req.process(solr);

        inputDocs.clear();

      }

      // solr.commit();

    } catch (final SolrServerException e) {

      throw makeIOException(e);

    }

 

在关闭的时候,Nutch会将封装好的数据采用基于http的POST的方法发送一个请求数据包给solr的服务器,solr.commit();这个方法在前面一篇文章中解释有些偏差,solr的整个事务都是在solr服务器端的,这跟以前的的事务有所区别,而这个方法就是再发送一个请求,要求提交当前的事务。

至于之前索引的增删查改也在这个类中实现,如想知道详情,可查看这个类实现。

至此,Nutch的整个index流程基本完成了。

由于时间仓促只是介绍了大概流程,如想了解其中一些细节问题,如有兴趣可以留言。或者发站内信给我。

 

第一次写,欢迎留言批评~~~~

酷

1
0
分享到:
评论

相关推荐

    搭建nutch web开发环境

    1. 使用Git克隆Nutch 1.2的源代码库: ``` git clone https://github.com/apache/nutch.git -b branch-1.2 ``` **构建Nutch** 1. 进入Nutch源代码目录: ``` cd nutch ``` 2. 使用Maven构建Nutch: ``` mvn...

    搭建nutch开发环境步骤

    **步骤三:获取Nutch源代码** 从Nutch的GitHub仓库克隆最新代码,通常使用命令: ```bash git clone https://github.com/apache/nutch.git ``` 这将创建一个名为`nutch`的目录,包含了项目的全部源代码。 **步骤四...

    nutch使用&Nutch;入门教程

    在使用Nutch之前,你需要配置Nutch的运行环境,包括安装Java、设置Hadoop(如果需要分布式爬取)、下载和编译Nutch源代码。还需要配置Nutch的`conf/nutch-site.xml`文件,指定抓取策略、存储路径、爬虫范围等参数。 ...

    nutch网页爬取总结

    - **配置 Nutch 创建索引**:下载 Nutch 的源代码并解压,然后通过 Maven 进行编译。配置 Nutch 的 `conf/nutch-site.xml` 文件以设置存储路径、抓取策略等参数。 - **安装 Tomcat**:Tomcat 用于运行 Nutch 的 UI...

    Nutch_插件深入研究

    Nutch插件允许开发者根据特定需求定制和扩展Nutch的功能,如自定义爬虫策略、数据解析方式、索引处理逻辑等。 #### 二、Nutch插件开发详解 Nutch插件的开发涉及到以下几个关键步骤: 1. **创建插件目录结构**:...

    Nutch 0.8笔记NUTCHNUTCH

    1. **文档阅读**:深入了解 Nutch 需要阅读官方提供的文档,如 "Introduction to Nutch, Part 1 Crawling" 和 "Introduction to Nutch, Part 2 Searching",以及源代码。Nutch 的源码结构清晰,便于理解和学习。 2....

    nutch2.2.1

    - `src`: 源代码目录,包含了所有Nutch的Java源码。 - `conf`: 配置文件,如`nutch-default.xml`和`nutch-site.xml`,需要根据实际需求进行调整。 - `bin`: 包含运行Nutch的各种脚本。 - `build.xml`: Ant构建文件,...

    nutch入门教程

    用户可以通过修改Nutch的源代码来定制和优化搜索引擎,以适应特定的需求或环境。 **8.2 插件机制---plugin** Nutch的插件机制允许用户扩展Nutch的功能,例如增加新的抓取协议、改进搜索算法等。插件机制增加了...

    分享一个Nutch入门学习的资料

    安装Nutch涉及到Java环境、Hadoop环境的配置,以及Nutch源代码的编译。初学者需要确保Java版本符合要求,安装并配置好Hadoop,然后从Apache官方网站下载Nutch源代码,通过Maven进行编译和构建。 5. **Nutch配置...

    nutch支持书名号搜索原理解释及代码实现

    例如,可能需要修改分析器(Analyzer)、查询解析器(QueryParser)和索引字段(IndexField)的代码,以确保书名号的正确处理。 在提供的文件列表中,"书名号搜索*.png" 可能是相关流程的截图,展示了一些关键步骤...

    apache-nutch-1.3-src.tar.gz_nutch_nutch-1.3.tar.gz

    这个源码包 "apache-nutch-1.3-src.tar.gz" 和 "nutch-1.3.tar.gz" 包含了 Nutch 1.3 的源代码和编译后的二进制文件,对于开发者和研究者来说是非常有价值的资源。 **Nutch 概述** Nutch 是基于 Java 开发的,遵循 ...

    \Lucene Nutch和安装说明文旦

    3. **构建项目**: 使用Maven或Gradle等构建工具编译源代码,生成可执行的JAR文件。 4. **配置文件**: 修改Nutch的配置文件,如`conf/nutch-site.xml`,设置爬虫的基本参数,如抓取间隔、抓取策略等。 5. **初始化...

    Nutch 使用总结

    5. `src`:Nutch的源代码目录。 6. `webapps`:包含了基于Tomcat的应用程序包,如`nutch-0.9.war`。 Nutch 的基本使用步骤: 1. 安装准备工作:确保系统安装了Cygwin、JDK(1.4.2以上版本)、Nutch(推荐0.9版本)...

    lucene+nutch搜索引擎(12章源码)

    3. 开放源代码:社区活跃,有大量的插件和教程供开发者参考。 四、实际应用场景 1. 内容管理系统:在企业内部构建信息检索平台,帮助员工快速找到所需资料。 2. 新闻门户:提供新闻内容的即时搜索,提升用户体验。...

    nutch入门学习

    Nutch 的安装通常包括下载源代码或发行版、解压、配置环境变量以及设置必要的配置文件等步骤。Nutch 的配置文件主要有 `conf/nutch-site.xml` 和 `conf/solrconfig.xml` 等,用于指定索引存储位置、日志级别等参数。...

    nutch源码分析

    对于希望深入了解Nutch内部实现机制的研究人员来说,熟悉这些流程和对应的源代码是至关重要的。此外,随着Web技术的发展,如何更好地处理动态网络数据(例如Web2.0数据)和根据网页质量调整抓取策略等问题也成为了...

    Java检索引擎

    Nutch的文件“nutch-0.8.rar”很可能包含了该版本的源代码、构建脚本以及相关的配置文件,使用者可以通过这些资料来学习和部署自己的搜索引擎。 Lucene,另一方面,是Apache软件基金会的一个项目,它是Java最著名的...

    毕业设计论文-IT计算机-[搜索链接]淘特搜索引擎共享版_tot_search_engine-源码.zip

    这个项目的源代码包含了完整的开发流程和技术实现,对于学习和研究搜索引擎技术,特别是JAVA后台开发的学生和专业人士具有很高的参考价值。 首先,让我们深入了解搜索引擎的基本原理。搜索引擎主要由爬虫、索引、...

Global site tag (gtag.js) - Google Analytics