`
文章列表
todo
以下是转载的执行recrawl的脚本(其实还是可以再优化的,比如参数和备份处理过程等 ),来对比 一下与普通的crawl有啥区别。 # runbot script to run the Nutch bot for crawling and re-crawling. # Usage: bin/runbot [safe] # If executed in 'safe' mode, it doesn't delete the temporary # directories generated during crawl. This might be helpful ...
其实nutch的评分机制有二部分,与通常的SE类似: 1。keywords匹配度 比如利用了lucene的similary机制,要索引和查询时均可定制。   2。page rank 这里有二个, 一是LinkAanlyzeScoring,作通常连接分析,但基本上都没有方法实现;不知道是否是opic的一个早期版本?   二是opic,即on-line importance computatioin。 这个与google的PageRanK是不同的,后者是off-line,可以说大大的不同。 包括inject,fetch,update,index等过程的score处理均在这 ...

nutch 搜索site dedup

这个版本发现有个大大的bug,就是搜索时同一页面出现重复,不同页面也出现重复。即使有check dedup功能,也不起作用。 后来把代码修改一个才行,被搞晕。。。     其实关键代码就在于NutchBean.search(query)中。以下来分析一下。   public Hits search(Query query) throws IOException { if (query.getParams().getMaxHitsPerDup() <= 0) // disable dup checking retu ...
3.3-2011.7 Highlights of the Lucene release include: The spellchecker module now includes suggest/auto-complete functionality, with three implementations: Jaspell, Ternary Trie, and Finite State. Support for merging results from multiple ...
了解了local search ,那么进行distributed search也是相当简单的。只涉及几台机器的搜索,归并服务而已。   图中虚线表示采用local fs情况,即每台机器放自己的index,segmenets(注意它也也是可以分布式)                   references: nutch1.0分布查询                
nutch搜索时进行了querys优化处理,包括缓存等。 为了对实际的搜索过程进行分析,让我们来对现成的搜索代码进行分析。   一。流程 二。分析 1.initiated nutch query 利用Query来parse生成,具体分成三步: *NutchAnalysis.parseQuery() ...

nutch 1.2 启动流程

todo

plugins 机制

觉得这块也是蛮重要的,所以得要认真学了。 但检索到网上讲得不是很清楚,要么就是背书一样;要么 就是没深入到点子上。 这里可以说 是作为一种扩展吧,希望可以对那么有所额外的补充。   一.概念 PluginClassloader:利用self-defined的来指定具体的loader,只是名称变了,其实是URLClassLoader,因为plugin所依賴    的libs及files均转换file to url形式来加载的。   PluginRepository:plugin的管理类,可以说是代理吧,重头戏的是将所有的plugin.xml解析封装,所以它包含很多形如 Plug ...
是的,这部分没有使用job,这点我也想到了:)   功能: 将由之前多个reduces index后(严格来说是dedup后)进行索引 合并 ; 将dedup后的deleted flags index进行清除;   也许会问,为什么要合并 呢?对了,对于构建一个分布式搜索系统来说这一步是不需要的,严格来说是"no"的,因为这步是作用一个intract net crawler 来作为最后一步处理的。   过程: 将hdfs/local上的多份索引添加 到inexwriter中; 调用lcuene内置的merger; 将生成的索引 写入local tmp下 ...

从mapreduce想起

todo
去重过程同样很简单,不过需要些技巧。 正如你想的一样,在入手之前我自己也分析,怎样根据url & md5去重呢?去重又怎样实现呢? *其中我当时想法跟job1(见下面)做法是相近的:url+time; *而md5去重时我又觉得使用md5+time亦未尝不可,因为当时我没有考虑到score因素,但可以断定的是不能使用md5作为distinct,因为这就是题目要求; *至于怎样去删除索引 ,当时也没有考虑:)     让我们先分析一个删除例子: A多个urls中,如果存在相同的urls,只取最新的一个; B如果存在相同md5的urls,只保留评分最高或url最短的一 ...

索引过程-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   ...
todo
任务是:inverted link map 此过程也是比较简单,不过代码好像有点问题。。 1.inverted job input:将segments下所有segs的parse_data作为输入。<url ,ParseData> M:将<fromUrl,toUrls> --> <toUrl,fromUrl> list,即倒相了。 C&R:限制同一target url的inlinks数。 output format:MapFileOutputFormat。<url,inlinks>   [2.merged job] ...
Global site tag (gtag.js) - Google Analytics