nutch2.3.1 scoring-opic 插件url评分为0 问题

运行nutch程序,发现除了入口url等分为1以外,其余的url得分都为0,问题如下图红圈所示。

几番百度、谷歌、求助大神无果后,决定尝试跟踪源码找问题。源码环境搭建参考博客:
http://blog.csdn.net/lqleo323/article/details/50999044

首先在org.apache.nutch.scoring.opic.OPICScoringFilter类里面打断点定位问题,每次运行到下面红圈处,程序就return了!。

但是程序在一开始的inject阶段就把这个值注入了啊 注入代码:

@Override
    public void injectedScore(String url, WebPage row)
            throws ScoringFilterException {
        float score = row.getScore();
        row.getMetadata().put(CASH_KEY, ByteBuffer.wrap(Bytes.toBytes(score)));
    }

没有办法,只能每个阶段来调试,然后查看url里面的metadata属性,看他怎么消失的。inject,generate、fetch阶段的url图如下所示:



fetch阶段 metadata属性存储的cash值消失了!这下问题算是定位到了 在fetch阶段。接着就是跟踪fetch源码最后发现下面一段代码。

public Collection<WebPage.Field> getFields(Job job) {
    Collection<WebPage.Field> fields = new HashSet<WebPage.Field>(FIELDS);
    if (job.getConfiguration().getBoolean(PARSE_KEY, false)) {
      ParserJob parserJob = new ParserJob();
      fields.addAll(parserJob.getFields(job));
    }
    ProtocolFactory protocolFactory = new ProtocolFactory(
        job.getConfiguration());
    fields.addAll(protocolFactory.getFields());

    return fields;
  }

如果job.getConfiguration().getBoolean(PARSE_KEY, false)为真,即conf/nutch-site.xml配置

<property>
  <name>fetcher.parse</name>
  <value>true</value>
  <description>If true, fetcher will parse content. NOTE: previous releases would
  default to true. Since 2.0 this is set to false as a safer default.</description>
</property>

则url里面的metadata属性就有cash值,可以用于后面的计算url分数。
最后每个链接都有了分数

修改了配置文件后。记得要ant clean,ant重新编译。
虽然问题好像看似解决了,但是还是有很多疑问,不明白为什么一个fetch阶段的配置可以影响到url的评分计算。而且这个fetcher.parse设置为true只是在fetch阶段也做parse的工作而已。希望有大神看到了可以帮我解惑。接触nutch几个月了,感觉坑很多,有时间还是要好好阅读下源码理一理才行。

联系作者

时间: 2024-11-01 03:26:12

nutch2.3.1 scoring-opic 插件url评分为0 问题的相关文章

Google的奇怪规则:URL不能以.0结尾

前两天SEOMoz发现和解决了一个很奇怪的Google收录问题. SEOMoz有一个网页,是关于他们举办的Web 2.0大奖(Web 2.0 Awards).URL是: http://www.seomoz.org/web2.0 这个奖在网上还挺受欢迎,链接很多,URL是PR7.而且一直以来在Google搜索"Web 2.0 Award"时都排在第一位. 但前几天SEOMoz发现搜索Web 2.0 Award时,这个页面从Google消失了.排在最前面的是一个更深一层的页面. SEOMo

eclipse中安装spket-1.6.22插件支持ExtJS 4.0.7

1 安装好eclipse(这个网上很多自己找) 2 spket支持JavaScript.XUL/XBL.Laszlo.SVG等 新产品,具有代码自动完成.语法高亮.内容概要等功能特点,可以帮助开发人员高效地创建 JavaScript程序,它可以以一个独立的桌面应用程序运行或者以Eclipse的插件运行,从它的官方网站 http://www.spket.com/可以下载,这里主要介绍它作为Eclipse插件的安装及使用方式. 3 当前最新的版本为spket-1.6.22.zip,解压后将plugi

jQuery插件 - (mb)MaskedGallery 1.0 (new).

效果觉得不错,但是具体使用可能比较耗费资源吧... 用法: <script src="jquery-1.3.js" type="text/javascript"></script> <script src="mbMaskedGallery.js" type="text/javascript"></script> <script type="text/javascr

信息过载的大数据时代,大数据推荐系统如何搭建,趋势何方

同比增长随着大数据时代的来临,网络中的信息量呈现指数式增长,随之带来了信息过载问题.推荐系统是解决信息过载最有效的方式之一,大数据推荐系统已经逐渐成为信息领域的研究热点.介绍了推荐系统的产生及其在大数据时代的发展现状.推荐系统的领域需求和系统架构.大数据环境下推荐系统的挑战及其关键技术.开源的大数据推荐软件.大数据推荐系统研究面临的问题,最后探讨了大数据推荐系统的未来发展趋势. 1 推荐系统与网络大数据 随着科技与信息技术的迅猛发展,社会进入了一个全新的高度信息化的时代,互联网无处不在,影响了人

国际电联2015年度报告 定调全球电信业2020年发展目标

定调全球电信业2020年发展目标 总体目标1:增长 促成并推进电信/ICT获取与普及 具体目标1.1:到2020年,全球55%的家庭将享有互联网接入 具体目标1.2:到2020年,全球60%的人口将用上互联网 具体目标1.3:到2020年,全球电信/ICT价格可承受性将提高40% 显示这一目标进展的现有数据说明,2014年家庭互联网接入数字为43.9%,2015年升至约46.4%. 显示这一目标进展的数据说明,2014年的互联网使用率为40.6%,2015年升至约43.4%.无线宽带网络在发展中

代码-关联规则实现推荐算法

问题描述 关联规则实现推荐算法 基于关联规则怎样用C++实现推荐算法 1.读取关联规则,将规则存储到一个链表中: 2.读取评分数据,建立评分矩阵和用户喜好事务,其中用户喜好事务存储在一个一维的字符串数组中: 3.将规则链表表中各规则与每个用户喜好事务(一维数组)进行匹配,将找到满足规则前件(即A→B中的A)的匹配用户,且此用户在评分矩阵中对规则后件(即A→B中的B)所标识的项的评分为0,则向用户推荐B. 最好有代码 解决方案 http://www.cnblogs.com/zhangchaoyan

维修网站iFixit称新款iPod Nano难修理

新浪科技讯 北京时间10月18日凌晨消息,手机维修网站iFixit称,苹果最新款iPod Nano将给任何需要修理这种设备的用户带来麻烦.iFixit发现,新款iPod Nano的电池.Lightning接口.按钮开关电源线和耳机全都焊接在逻辑板上,而且电池也使用 强力胶水粘在显示屏背面.这意味着,任何用户需要更换其中一个部件都需要做大量的工作.另一方面,iFixit发现iPod Nano的外壳很容易打开,只需松开两个标准的十字头螺钉即可:LCD和数字转换器玻璃没有熔凝在一起,因此可独立拆解.整

转 编写一个最简单的Nutch插件

nutch是高度可扩展的,他使用的插件系统是基于Eclipse2.x的插件系统.在这篇文章中我讲解一下如何编写一个nutch插件,以及在这个过程中我遇到的坑. 请先确保你在eclipse中成功运行了nutch,可以参考在eclipse中运行nutch 我们要实现的插件的功能是接管抓取过程,然后无论抓取什么网址,我们都返回hello world,够简单吧... 插件机制 nutch的插件机制大致是这样:nutch本身暴露了几个扩展点,每个扩展点都是一个接口,我们可以通过实现接口来实现这个扩展点,这

转 解析Nutch插件系统

一. 在Nutch的插件体系架构下,有些术语需要解释    1.扩展点(ExtensionPoint )       扩展点是系统中可以被再次扩展的类或者接口,通过扩展点的定义,可以使得系统的执行过程变得可插入,可任意变化.     2.扩展 ( Extension )       扩展式插件内部的一个属性,一个扩展是针对某个扩展点的一个实现,每个扩展都可以有自己的额外属性,用于在同一个扩展点实现之间进行区分.扩展必须在插件内部进行定义.    3.插件 ( Plugin )       插件实