- 浏览: 159897 次
- 性别:
- 来自: 北京
最新评论
-
w156445045:
我最近想写这方面的论文,学位论文啊,哎。希望博主能给点思路,谢 ...
《Lucene+Nutch搜索引擎》看过以后。。。 -
inprice:
这也要研究啊!!!!! 失望ing.........
完成了对于heritrix的初步研究 -
dt_fb:
您好,我想问问您,你有跳过recrawl.sh这个脚本文件么? ...
Nutch开源搜索引擎的crawl日志分析及工作目录说明 -
lovepoem:
能增量吗?是不是还是把所有的url遍历出来。和以前的对比。算是 ...
Nutch开源搜索引擎增量索引recrawl的终极解决办法 -
itang:
见到牛人照片了, MS下巴动过刀(开玩笑)
搜索引擎名人堂之Jeff Dean
十一要放假了,先祝广大同学们节日快乐!
在之前的一篇文章中,我给出了Nutch的recrawl的解决办法。说实话,当时已经觉得可以应对recrawl的问题,但是我自己在测试过程中发现,在index的merge时,并没有完全成功。本文就是针对上一篇文章给出解决办法。
具体的原因是在merge完成后,会在index目录下面生成一个merge-output目录,这是由于临时目录newindexs和index执行完毕后产生的,这就增量索引的结果。
在shell中的命令是:/nutch/search/bin/nutch merge crawl10/index crawl10/newindexes
我原先的index目录中_0.fdt原来就是6292105 Byte,执行完后并没有增加,而在merge-output中的_0.fdt大小是1636852 Byte。说明这两块索引并没有合并在一起。
[nutch@linux1 crawl10-new]$ ll index/
total 76228
-rw-r--r-- 1 nutch users 6292105 Sep 28 17:02 _0.fdt
-rw-r--r-- 1 nutch users 236848 Sep 28 17:02 _0.fdx
-rw-r--r-- 1 nutch users 81 Sep 28 17:02 _0.fnm
-rw-r--r-- 1 nutch users 22120872 Sep 28 17:02 _0.frq
-rw-r--r-- 1 nutch users 177640 Sep 28 17:02 _0.nrm
-rw-r--r-- 1 nutch users 48174123 Sep 28 17:02 _0.prx
-rw-r--r-- 1 nutch users 12794 Sep 28 17:02 _0.tii
-rw-r--r-- 1 nutch users 902086 Sep 28 17:02 _0.tis
drwxr-xr-x 2 nutch users 4096 Sep 28 17:02 merge-output
-rw-r--r-- 1 nutch users 41 Sep 28 17:02 segments_2
-rw-r--r-- 1 nutch users 20 Sep 28 17:02 segments.gen
[nutch@linux1 crawl10-new]$ ll index/merge-output/
total 20520
-rw-r--r-- 1 nutch users 1636852 Sep 28 18:53 _0.fdt
-rw-r--r-- 1 nutch users 61608 Sep 28 18:53 _0.fdx
-rw-r--r-- 1 nutch users 81 Sep 28 18:53 _0.fnm
-rw-r--r-- 1 nutch users 5782861 Sep 28 18:53 _0.frq
-rw-r--r-- 1 nutch users 46210 Sep 28 18:53 _0.nrm
-rw-r--r-- 1 nutch users 13004666 Sep 28 18:53 _0.prx
-rw-r--r-- 1 nutch users 5406 Sep 28 18:53 _0.tii
-rw-r--r-- 1 nutch users 405471 Sep 28 18:53 _0.tis
-rw-r--r-- 1 nutch users 41 Sep 28 18:53 segments_2
-rw-r--r-- 1 nutch users 20 Sep 28 18:53 segments.gen
不知道nutch是否有这种合并的功能,呵呵,我没有找到,于是就自己写了一个类MergeLuceneIndex来解决这个问题。具体的思路就是用lucene的索引合并功能来处理这个问题,将merge-output下面的索引文件合并到index下面,执行后_1.fdt大小变成7928957 Byte,说明合并成功,重启tomcat后,就能看到增量的索引的内容了。
[nutch@linux1 crawl10-new]$ ll index
total 96360
-rw-r--r-- 1 root root 7928957 Sep 28 18:53 _1.fdt
-rw-r--r-- 1 root root 298456 Sep 28 18:53 _1.fdx
-rw-r--r-- 1 root root 81 Sep 28 18:53 _1.fnm
-rw-r--r-- 1 root root 27954608 Sep 28 18:53 _1.frq
-rw-r--r-- 1 root root 223846 Sep 28 18:53 _1.nrm
-rw-r--r-- 1 root root 61178789 Sep 28 18:53 _1.prx
-rw-r--r-- 1 root root 13078 Sep 28 18:53 _1.tii
-rw-r--r-- 1 root root 922972 Sep 28 18:53 _1.tis
drwxr-xr-x 2 nutch users 4096 Sep 28 18:53 merge-output
-rw-r--r-- 1 root root 41 Sep 28 18:53 segments_3
-rw-r--r-- 1 root root 20 Sep 28 18:53 segments.gen
合并索引是lucene的基本功能,很好很强大。由于我选paoding做中文分词,所以需要配置好paoding,再运行下面这个类。
//注意:nutch默认是用分拆式index,需要将compound设成false
indexWriter.setUseCompoundFile(false);
共享一下代码!
希望这个补救措施能够进一步帮助到大家,我可不希望我发表的文章误人子弟,嘿嘿!
在之前的一篇文章中,我给出了Nutch的recrawl的解决办法。说实话,当时已经觉得可以应对recrawl的问题,但是我自己在测试过程中发现,在index的merge时,并没有完全成功。本文就是针对上一篇文章给出解决办法。
具体的原因是在merge完成后,会在index目录下面生成一个merge-output目录,这是由于临时目录newindexs和index执行完毕后产生的,这就增量索引的结果。
在shell中的命令是:/nutch/search/bin/nutch merge crawl10/index crawl10/newindexes
我原先的index目录中_0.fdt原来就是6292105 Byte,执行完后并没有增加,而在merge-output中的_0.fdt大小是1636852 Byte。说明这两块索引并没有合并在一起。
[nutch@linux1 crawl10-new]$ ll index/
total 76228
-rw-r--r-- 1 nutch users 6292105 Sep 28 17:02 _0.fdt
-rw-r--r-- 1 nutch users 236848 Sep 28 17:02 _0.fdx
-rw-r--r-- 1 nutch users 81 Sep 28 17:02 _0.fnm
-rw-r--r-- 1 nutch users 22120872 Sep 28 17:02 _0.frq
-rw-r--r-- 1 nutch users 177640 Sep 28 17:02 _0.nrm
-rw-r--r-- 1 nutch users 48174123 Sep 28 17:02 _0.prx
-rw-r--r-- 1 nutch users 12794 Sep 28 17:02 _0.tii
-rw-r--r-- 1 nutch users 902086 Sep 28 17:02 _0.tis
drwxr-xr-x 2 nutch users 4096 Sep 28 17:02 merge-output
-rw-r--r-- 1 nutch users 41 Sep 28 17:02 segments_2
-rw-r--r-- 1 nutch users 20 Sep 28 17:02 segments.gen
[nutch@linux1 crawl10-new]$ ll index/merge-output/
total 20520
-rw-r--r-- 1 nutch users 1636852 Sep 28 18:53 _0.fdt
-rw-r--r-- 1 nutch users 61608 Sep 28 18:53 _0.fdx
-rw-r--r-- 1 nutch users 81 Sep 28 18:53 _0.fnm
-rw-r--r-- 1 nutch users 5782861 Sep 28 18:53 _0.frq
-rw-r--r-- 1 nutch users 46210 Sep 28 18:53 _0.nrm
-rw-r--r-- 1 nutch users 13004666 Sep 28 18:53 _0.prx
-rw-r--r-- 1 nutch users 5406 Sep 28 18:53 _0.tii
-rw-r--r-- 1 nutch users 405471 Sep 28 18:53 _0.tis
-rw-r--r-- 1 nutch users 41 Sep 28 18:53 segments_2
-rw-r--r-- 1 nutch users 20 Sep 28 18:53 segments.gen
不知道nutch是否有这种合并的功能,呵呵,我没有找到,于是就自己写了一个类MergeLuceneIndex来解决这个问题。具体的思路就是用lucene的索引合并功能来处理这个问题,将merge-output下面的索引文件合并到index下面,执行后_1.fdt大小变成7928957 Byte,说明合并成功,重启tomcat后,就能看到增量的索引的内容了。
[nutch@linux1 crawl10-new]$ ll index
total 96360
-rw-r--r-- 1 root root 7928957 Sep 28 18:53 _1.fdt
-rw-r--r-- 1 root root 298456 Sep 28 18:53 _1.fdx
-rw-r--r-- 1 root root 81 Sep 28 18:53 _1.fnm
-rw-r--r-- 1 root root 27954608 Sep 28 18:53 _1.frq
-rw-r--r-- 1 root root 223846 Sep 28 18:53 _1.nrm
-rw-r--r-- 1 root root 61178789 Sep 28 18:53 _1.prx
-rw-r--r-- 1 root root 13078 Sep 28 18:53 _1.tii
-rw-r--r-- 1 root root 922972 Sep 28 18:53 _1.tis
drwxr-xr-x 2 nutch users 4096 Sep 28 18:53 merge-output
-rw-r--r-- 1 root root 41 Sep 28 18:53 segments_3
-rw-r--r-- 1 root root 20 Sep 28 18:53 segments.gen
合并索引是lucene的基本功能,很好很强大。由于我选paoding做中文分词,所以需要配置好paoding,再运行下面这个类。
//注意:nutch默认是用分拆式index,需要将compound设成false
indexWriter.setUseCompoundFile(false);
共享一下代码!
package org.apache.nutch.tool; import java.io.File; import net.paoding.analysis.analyzer.PaodingAnalyzer; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.FSDirectory; /** * 这个类是为了处理nutch的本地index用的,合并merge-out与原始的index文件 * @author kevin * */ public class MergeLuceneIndex { /** * @author about merge lucene Index by kevin * 将小索引文件合并到大的索引文件中去 * @param from 将要合并到to文件的文件 * @param to 将from文件合并到该文件 * @param sa */ private static void mergeIndex(File from, File to,Analyzer analyzer) { IndexWriter indexWriter = null; try { System.out.println("Merge start! "); indexWriter = new IndexWriter(to, analyzer, false); indexWriter.setUseCompoundFile(false);//注意:nutch默认是用分拆式index,需要将compound设成false indexWriter.setMergeFactor(100000); indexWriter.setMaxFieldLength(Integer.MAX_VALUE); indexWriter.setMaxBufferedDocs(Integer.MAX_VALUE); indexWriter.setMaxMergeDocs(Integer.MAX_VALUE); FSDirectory[] fs = { FSDirectory.getDirectory(from, false) }; indexWriter.addIndexes(fs); indexWriter.optimize(); indexWriter.close(); System.out.println("Merge finished!"); } catch (Exception e) { System.out.println("Merge error!"); e.printStackTrace(); } finally { try { if (indexWriter != null) indexWriter.close(); } catch (Exception e) { e.printStackTrace(); } } } public static void main(String[] arg){ //File from = new File("/nutch/local/crawl10-new/index/merge-output"); //File to = new File("/nutch/local/crawl10-new/index"); File from = new File(arg[0]); File to = new File(arg[1]); mergeIndex(from,to,new PaodingAnalyzer()); } }
希望这个补救措施能够进一步帮助到大家,我可不希望我发表的文章误人子弟,嘿嘿!
评论
4 楼
nhy520
2009-05-23
怎么执行脚本啊大哥.我不会shell编程
3 楼
yawl
2009-01-09
http://wiki.apache.org/nutch/IntranetRecrawl
最前面的注解是我加的。今年初使用过nutch一段,发现这个recrawl的并不像宣称的那样工作。
最前面的注解是我加的。今年初使用过nutch一段,发现这个recrawl的并不像宣称的那样工作。
2 楼
ianwong
2008-12-18
你确信merge-out产生的是增量数据??
1 楼
ianwong
2008-12-17
合并后 查询服务器启动不起来了哦
发表评论
-
Nutch1.0开源搜索引擎与Paoding在eclipse中用plugin方式集成(终极篇)
2009-09-14 13:15 4334本文主要描述的是如何将paoding分词用plugi ... -
Nutch1.0的那些事
2009-09-10 12:37 2196很久没有更新博客了,应该快一年了。现在呢,我把去年 ... -
配置linux服务器之间ssh不用密码访问
2008-11-05 13:55 3906在配置nutch的时候,我 ... -
搜索引擎术语
2008-10-15 15:30 2548最近monner兄共享了一篇 ... -
搜索引擎机器人研究报告
2008-10-13 15:35 1932从该文对googlebot的分析看,googlebot似乎是想 ... -
搜索引擎算法研究
2008-10-13 15:11 21211.引言 万维网WWW(World Wide Web ... -
谁说搜索引擎只关注结果-看我viewzi的72变
2008-10-04 20:15 1837搜索引擎给大家的感觉,就是用起来简单,以google为首,一个 ... -
《Lucene+Nutch搜索引擎》看过以后。。。
2008-10-03 23:42 7639研究搜索引擎技术快一 ... -
微软有趣的人物关系搜索引擎——人立方
2008-10-03 20:00 3962最近,微软亚洲研究院 ... -
Nutch:一个灵活可扩展的开源web搜索引擎
2008-09-28 11:46 2267在网上找到一篇于2004年11月由CommerceNet La ... -
Google公司都是些什么牛人?
2008-09-27 17:31 2073Google公司都是些什么牛人? 1 Vi ... -
搜索引擎名人堂之Doug Cutting
2008-09-27 11:41 2640Doug Cutting是一个开源搜索技术的提倡者和创造者。他 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法
2008-09-26 19:12 5175本文重点是介绍Nutch开源搜索引擎如何在Hadoop分布式计 ... -
Nutch开源搜索引擎与Paoding中文分词用plugin方式集成
2008-09-26 15:31 4594本文是我在集成中文分词paoding时积累的经验,单独成一篇文 ... -
关于Hadoop的MapReduce纯技术点文章
2008-09-24 18:10 3516本文重点讲述Hadoop的整 ... -
MapReduce-免费午餐还没有结束?
2008-09-24 09:57 1485Map Reduce - the Free Lunch is ... -
搜索引擎名人堂之Jeff Dean
2008-09-22 15:09 14976最近一直在研究Nutch,所以关注到了搜索引擎界的一些名人,以 ... -
Lucene于搜索引擎技术(Analysis包详解)
2008-09-22 14:55 2223Analysis 包分析 ... -
Lucene与搜索引擎技术(Document包详解)
2008-09-22 14:54 1723Document 包分析 理解 ... -
Lucene的查询语法
2008-09-22 14:53 1413原文来自:http://liyu2000.nease.net/ ...
相关推荐
### Nutch开源搜索引擎增量索引recrawl的终极解决办法 #### 知识点解析: **Nutch与Hadoop集成下的recrawl策略** Nutch是一款基于Java的开源搜索引擎框架,能够爬取网页、提取数据并建立索引。它利用Apache ...
### Nutch开源搜索引擎增量索引recrawl的终极解决办法续 #### 一、背景与问题概述 在前一篇文章中,我们探讨了Nutch开源搜索引擎在进行增量索引更新(recrawl)时遇到的问题及其初步解决方案。然而,在实际操作...
2. **增量索引**:Nutch支持增量索引,即只对新抓取或已更改的网页进行索引,而不是重新索引整个数据库。这降低了索引更新的资源需求,并减少了对现有服务的影响。 3. **双写策略**:在热替换过程中,新索引将被...
Nutch是Apache软件基金会的一个开源项目,主要用于构建网络搜索引擎。这个开发资料压缩包包含了与Nutch相关的源代码和可能的配置文件,可以帮助开发者深入了解和学习Nutch的工作原理以及如何进行定制化开发。以下是...
Nutch是Apache软件基金会开发的一个开源Web搜索引擎项目,它的设计目标是提供一个可扩展、灵活的搜索解决方案。Nutch不仅能够抓取和索引互联网上的网页,还支持对抓取的数据进行分析和处理,以便为用户提供高质量的...
Nutch-2.1是Apache Nutch的一个特定版本,它是一个用Java编写的开源搜索引擎软件。这个项目的主要目标是提供一套高效、可扩展的搜索引擎工具,使得用户可以在自己的环境中搭建和运行自己的搜索引擎。Nutch不仅仅是一...
3. **索引优化**:Nutch 提供了多种索引策略,如增量索引、定期全量索引等,以适应不同场景需求。 4. **倒排索引**:Nutch 采用倒排索引结构,快速定位关键词在文档中的位置。 **四、Apache Solr 搜索引擎** 1. **...
- **2.2.4 Nutch网络搜索软件**:Nutch是一款开源的网络爬虫项目,用于抓取网页并构建索引,本节介绍其基本使用方法。 - **2.2.5 用户界面**:讨论如何设计友好的用户界面,以便用户更轻松地使用搜索引擎。 - **...
5. **实时更新与增量索引**:展示了如何在数据变化时实时更新索引,以保持搜索结果的最新性。 6. **多语言支持**:讲解了处理不同语言文本的方法,包括语言识别和特定语言的分析器。 7. **分布式搜索**:详细介绍...
在此过程中,需要解决自动增量索引、排序和相关度提升、用户行为分析等问题。 5. 搜索网站的进化: 随着时间的推移,搜索引擎发展到全文搜索型,如Google和百度,它们通过网页抓取、分析和索引提供服务。Google的...
Lucene提供API接口,但仅限于信息的索引和检索,而网络爬虫则负责获取网页内容,将其转化为可供搜索引擎使用的资源。网络爬虫的优化主要集中在如何更有效地利用网络带宽,合理安排网页抓取的时间,以及处理动态网络...
Lucene支持增量索引和实时搜索,这意味着新添加或修改的文档可以立即反映在搜索结果中。这对于保持搜索引擎的最新状态至关重要。 通过以上步骤,我们可以使用Lucene构建一个功能强大的搜索引擎。当然,实际应用中...
- 初期以PageRank算法为核心,有效解决了当时互联网搜索引擎的质量问题。 - 随着时间的发展,Google不断改进其搜索引擎技术,成为全球最知名的搜索引擎之一。 **1.2 体验搜索引擎** - **搜索引擎的功能:** - ...
Nutch是一个开源的Java搜索引擎,它集成了爬虫(crawler)和搜索器(searcher)两个主要功能。Nutch能够进行网页抓取,并建立索引。它的优点包括基于Lucene的高效索引和检索功能、支持分布式处理以及与Hadoop的紧密...
- 深层网络爬虫:抓取传统搜索引擎难以索引的深层网页。 1.3 具体的爬虫工具: - Scrapy:Python编写的强大框架,适用于数据挖掘和信息处理。 - Crawler4j、WebMagic、WebCollector:Java的单机爬虫开源框架,各自...
此外,论文还涉及了Nutch分布式搜索系统的相关研究,这是一个开源的、基于Apache Hadoop的搜索引擎项目,提供了完整的网络爬虫和索引功能,对于理解分布式网络爬虫的实现具有重要的参考价值。 在系统实现部分,文章...
- **搜索引擎优化(SEO)**:分析关键词分布,提升排名。 - **市场分析**:监测竞争对手动态,收集消费者反馈。 - **新闻监测**:实时抓取新闻热点,辅助决策。 - **学术研究**:收集大量数据进行文本挖掘或社会...