Egothor
Egothor是一个用Java编写的开源而高效的全文本搜索引擎。借助Java的跨平台特性,Egothor能应用于任何环境的应用,既可配置为单独的搜索引擎,又能用于你的应用作为全文检索之用。
更多Egothor信息
Nutch
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
更多Nutch信息
Lucene
Apache Lucene是一个基于Java全文搜索引擎,利用它 ...
- 00:09
- 浏览 (105)
- 评论 (0)
- 分类: Search Engine
斯坦福的信息检索的教材,还没出版,先分享一下电子版原稿.
对于学习信息检索和搜索引擎是个相当好的教材.
- 23:59
- 浏览 (161)
- 评论 (0)
- 分类: Search Engine
还没有来得及看,但搜索引擎的书不是很好找,先放上,希望对大家能有用
- 19:42
- 浏览 (221)
- 评论 (0)
- 分类: Search Engine
分享一个Nutch入门学习的资料,感觉写的还不错.
- 20:49
- 浏览 (287)
- 评论 (0)
- 分类: Search Engine
今天来看看Nutch如何Parse网页的:
Nutch使用了两种Html parser工具(NekoHTML和TagSoup)来实现html的提取,这两种工具是可通过配置来选择的。
当然你要自己实现Parser你还可以选择HTMLParser[基于visitor访问者模式同时也提供了Event driver的接口]来
提取网页。如果你用惯了XML一套处理方法,使用NekoHTML和TagSoup应该会比较顺手的。
我们来看看类public class HtmlParser implements Parser的实现:
首先为了更好的理解下面的代码先看看成员变量:
private stati ...
- 22:37
- 浏览 (387)
- 评论 (0)
- 分类: Search Engine
设计要素
nutch包含以下几个部分:
辅助类
Log:记载运行信息;
Time:记载时间信息;
协议类
目的:各种进程之间的通信协议
Client和M/R系统通信协议:完成客户端和M/R系统的通信;
Job和Task系统通信协议:由于一个任务要分布完成,所以需要任务和子任务之间的通信协议;
MapTask和ReduceTask通信协议:由于MAP和REDUCE是一个任务的顺序执行过程,所以需要两者之间的通信协议来对两个步骤进行协调,主要是文件输入输出协调;
进程通信协议:子进程和父进程通信协议;
任务管理
&nb ...
- 19:21
- 浏览 (244)
- 评论 (0)
- 分类: Search Engine
我现在看得源码主要是网页抓取部分,这部分相对比较容易。我首先定位所有与网页抓取部分,大体看了整个流程后,然后几乎看了所有函数的实现,当然也有许多不太明白的,相信随着逐渐对整个代码的熟悉,这些疑问会逐渐解决。现在有一些疑问就是Nutch为什么没有使用异步的Socket和缓冲DNS来提高抓取的效率(或许我还没有找到)。
Nutch的代码整体上写的还算通俗易懂。但Nutch大量使用了Google的Map-Reduce思想,来简化了很多功能模块的设计,这对从来没有接触到Map-Reduce的初学者带来了很陡峭的学习曲线。可以这样说,没有对Map-Reduce的思想的深刻理解,读懂Nutch源码是非常 ...
- 19:13
- 浏览 (242)
- 评论 (0)
- 分类: Search Engine
今天我们看看Nutch网页抓取,所用的几种数据结构:
主要涉及到了这几个类:FetchListEntry,Page,
首先我们看看FetchListEntry类:
public final class FetchListEntry implements Writable, Cloneable
实现了Writable, Cloneable接口,Nutch许多类实现了Writable, Cloneable。
自己负责自己的读写操作其实是个很合理的设计方法,分离出来反倒有很琐碎
的感觉。
看看里面的成员变量:
public static final String DIR_NAME = "fet ...
- 16:39
- 浏览 (363)
- 评论 (3)
- 分类: Search Engine
今天我们来看看Nutch的源代码中的protocol-http插件,是如何抓取和下载web页面的。protocol-http就两个类HttpRespose和Http类,其中HttpRespose主要是向web服务器发请求来获取响应,从而下载页面。Http类则非常简单,其实可以说是HttpResponse的一个Facade,设置配置信息,然后创建HttpRespose。用户似乎只需要和Http类打交道就行了(我也没看全,所以只是猜测)。
我们来看看HttpResponse类:
看这个类的源码需要从构造函数
public HttpResponse(HttpBase http, URL url, C ...
- 00:36
- 浏览 (416)
- 评论 (2)
- 分类: Search Engine
搜索引擎Nutch源代码研究之一 网页抓取:
Nutch的爬虫代码部分主要集中在:package org.apache.nutch.fetcher和插件protocol-file
Protocol-ftp protocol-http protocol-httpclient以及相应的Parser插件中:
下面我们先从org.apache.nutch.fetcher开始:
最主要的类是Fetcher类,我们从它入手一步步跟踪整个代码:
我们从run函数入手:
首先:
for (int i = 0; i < threadCount; i++) { // spawn thread ...
- 20:18
- 浏览 (561)
- 评论 (2)
- 分类: Search Engine
- 浏览: 50656 次
- 性别:

- 来自: 长春

- 详细资料
搜索本博客
我的相册
RSS Reader1
共 6 张
共 6 张
链接
最新评论
-
使用Struts2+Hibernate+Sp ...
很好很强大
-- by andy54321 -
Java Persistence with Hi ...
昨天买的, 不错
-- by lklkdawei -
使用Struts2+Spring+Hiber ...
不过整个工程都没有一条注释啊。。。 这个比较郁闷,万一以后你写了个框架,那下面 ...
-- by yyphzc -
使用Struts2+Spring+Hiber ...
总体感觉还行,不过部分代码需要优化为好 1.DAO既然使用泛型,那就干脆点。想想 ...
-- by yeshucheng -
使用Struts2+Spring+Hiber ...
这儿有个好同志: http://www.javaeye.com/topic/12 ...
-- by drinkjava






评论排行榜