索引过程-index

可以说这个过程就是一个"shuffle"的过程,然后进行index操作。

 

流程:


 

 

詳細过程:

input : 这里有几个文件,来分析各文件的作用

crawl-fetch:当获取不到last-midified time时,用来fetch time代替

crawl-parse:no use

parse-data:conten-type;date等索引数据

parse-text:整个page全文检索

linkdb:取出指向当前url的所有的anchors进行索引

crawldb:获取之前score用以计算新的score

 

NOTE

*由于所有files的输入key都是Text(url),所以reduce可以将这些整合一起;

*其中fetch ,parse,crawldb格式是完全一样的;

很多地方出现WRITABLE_REPR_URL_KEY,貌似这是旧版本的属性,see ReprUrlFixer.java


这些文件内容都可以从小结fetch 中找到

 

output

输出到indexes/part-xxxxx下

 

map

use default

 

reduce

这里主要是使用了IndexerOutputFormat来重写索引

由于数据来源是混合的,所以要处理时根据value类型进行了区分。其中进行了过滤:

if (fetchDatum == null || dbDatum == null
        || parseText == null || parseData == null) {
      return;                                     // only have inlinks
    }
    //去掉不正常抓取的
    if (!parseData.getStatus().isSuccess() ||
        fetchDatum.getStatus() != CrawlDatum.STATUS_FETCH_SUCCESS) {
      return;
    }
 

奇怪的是,initMRJob()时明明outputValueClass是NutchWritale,但在reduce输出的却是NutchDocument?

经过测试,二者均可以。

 

plugins

index:BasicIndexFilter,AnchorIndexFilter,MoreIndexFitler.默认是前面二个

scoring:LinkAnalysisScoringFilter,OPICScoringFilter;默认是后面一个

 

在索引 时只处理了doc boost,所有的field weight是默认的;只有在查询时才处理。这样做就灵活可控了。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值