学习搜索开发的重点不在lucene和nutch[ 原创]

原创 2007年09月17日 19:59:00

// http://blog.csdn.net/chengg0769  转载或抓取请勿篡改内容或者加一些标记在里面,本人非常反感。

设想:如果现在没有lucene,nutch,可以说,99.999%的人不知道搜索是怎么原理,怎么个做法,如果实现更别谈了。我就是其中一个。

而:现在已经有这个开源的东东,如果你要仔细研究lucene并试图写一个C++的版本,那不是不可以,而是耗费可以说十年之功的事情(cutting已经耗费7年了,而且前提他早就是作这个技术的人),当然你也不会从java版本开始去研究,而会从基本原理+CLucene研究开始,而至于java版的有速度的说法,当然你再试图研究除c++,java版本以外的版本毫无疑义,为什么呢?因为剩下的都是无法跨平台(如C#)或者解释执行的(perl,ruby等)。更谈不上改进效率了,甚至有些版本搞出空实现来,不害死你我不信。

其实如我所认为,我们应该解决的是xwjbs和化柏林论文里告诉我们的那些难题点(就是我指的point)。而不是要解决怎么用lucene的问题。我们可以认为现在作一个垂直搜索,检索部分和搜索部分,可以先考虑成一个抽象的空实现。解决其它问题更为关键。算我说的不好听,lucene经过这么久的发展,谁想在他的基础上在独立改进一个版本而不去跟java版本的改进同步的话,这是不可能的。也就是说,如果你打算作出一个原型的,谁来作这两个未实现的部分都可以。可以问一下哪个人如果去应聘他会说不知道lucene?

今天看到 xwjbs的文章,才明白原来自己想的那些细节问题是方向正确的。至少流水模式,监控和任务分派,分布,单独的链接分析和下载分开,任务拆解,这些概念我还是从上千的文章中真正领悟到了(我实现黄页抓取,分析,抽取就是分开的,而且一开始就考虑了多线程,多电脑分布,并考虑对某个站点的线程数控制,全局ID编号,link消重(没实现好),甚至DNS cache也考虑了。。。想太多了)。他文章正好解决了我构思的一些未解决问题。并使得问题点明朗化。

总结:搞这个,或商业或学习,或只是学习全文检索以利其它方面整和运用,学习的方法是重要的。不要围绕到lucene就认为是关键核心。为大众认知并掌握的东西就不是核心了(比如xeon的图纸如果公布了,它的设计就不是核心了)其实,如果你把数据量定位到10亿,更新率,去重,查全,查准率这些目标定出来,你会发现你学习的知识完全不够,到处都是问题,没有哪一个问题你能解决。这就是yetiantian说的光是可行性就足以让99.999%的人放弃。

所以对我而言。作这个其实是在学习。如果你看了两篇文字就在那里摸来摸去,讨论来讨论去有什么必要呢。如果你没有把上千篇文章理解,没有看过分析过已经存在的产品,你有什么理由动手呢?你问问cutting摸这么久,代码才2W行,他在摸什么呢?这是关键的问题。

//20070926 append

举例说,很多人都在看切词问题,而很少有人能写出好的实用程序,为什么呢?这里有几个因素:

1.词典问题。必须全面,而且普通词典要结合各种专业词典,就如金山一样。

2.需要好的算法能兼顾效率,因为切词是索引的瓶颈

3.需要新词发现,审核和补索引。比如说"芙蓉姐姐",本身切开是两个词语,但是这是一个流行的网络新词,关键是采用什么技术,从什么专业的角度,去发现新词,是否经过人工审核,审核后的新词,要不要把以前的html重新作索引,还是实现无痛自动增加,后续按新词表切分。这就是cutting关注的一些算法,流程,处理逻辑,即如何实现,怎样实现,结构是什么的问题。而模块,程式化后的单元我想交由专业的程序员来实现就足够了。这就是本文的结论:我们应该学习design,而不是拿coding来讨论。design能使得搜索有质的提升,coding最多局部改善或者提高效率。

(转)Lucene,Nutch,Hadoop 之间有什么关系?

描述的比较详细~ 1. Nutch是基于Lucene的,Lucene是提供全文文本搜索的开源函数库,Lucene为Nutch提供了文本索引和搜索的API。 2.Hadoop起源于Nutch项目...
  • zrunlin
  • zrunlin
  • 2013年08月26日 15:48
  • 1075

Nutch和Lucene的区别

想做一个搜索引擎,最近浏览了许多社区,发现Lucene和Nutch用的很多,而这两个我总感觉难以区分概念, 于是在查了些资料。下面是Lucene和Nutch创始人Doug Cutting 的访谈摘录:...
  • qq_20545159
  • qq_20545159
  • 2015年12月30日 12:41
  • 456

lucene初探(-):lucene基本,实现文件查找

1:什么是lucene?Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供...
  • do_bset_yourself
  • do_bset_yourself
  • 2016年06月05日 20:15
  • 1454

nutch从搜索引擎到网络爬虫

人物介绍 姓名:DougCutting 个人名望:开发出开源全文检索引擎工具包Lucene。 个人简介/主要荣誉:除了 Lucene,还开发了著名的网络爬虫工具 Nutch,分布式系统基础架构 H...
  • baolibin528
  • baolibin528
  • 2014年09月19日 19:01
  • 1984

Apache Lucene 全文检索详解及开发示例

文章地址:http://www.cnblogs.com/xing901022/p/3933675.html 讲解之前,先来分享一些资料     首先呢,学习任何一门新的亦或是旧的开源技术,百度其中一...
  • boonya
  • boonya
  • 2016年04月05日 13:44
  • 1850

Nutch-2.2.1学习之八过滤抓取数据

在Nutch的conf目录中有automaton-urlfilter.txt、regex-urlfilter.txt、suffix-urlfilter.txt、prefix-urlfilter.txt...
  • sky_walker85
  • sky_walker85
  • 2013年12月25日 20:28
  • 6776

1.搜索之路——Nutch与Lucene

1.搜索之路——Nutch与Lucene 1     关于搜索引擎 概念的东西网上一大堆,蛤蟆稍微提炼一下。 搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜...
  • notbaron
  • notbaron
  • 2016年08月06日 21:01
  • 30024

Lucene搜索方式大合集

package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; im...
  • u012443091
  • u012443091
  • 2015年02月25日 22:31
  • 709

基于lucene的搜索方案

说是电子商务搜索架构方案,其实就是lucene.net的应用,公司庙小,人少,也就自己平时看看,以前做过一点例子,这样就被拉上去写架构方案了。我这个懒惰的家伙,在网上疯狂的搜集搜索架构方面的东西,因为...
  • u011966339
  • u011966339
  • 2016年10月31日 17:54
  • 1061

Lucene实战(三)多Field搜索,并且对搜索结果进行过滤和[自定义]排序

前言 如果你是一个
  • mthhk008
  • mthhk008
  • 2014年05月16日 15:10
  • 2733
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习搜索开发的重点不在lucene和nutch[ 原创]
举报原因:
原因补充:

(最多只允许输入30个字)