搜索引擎Nutch介绍

【摘要】
Nutch 是一个刚刚诞生开放源代码(open-source)的web搜索引擎.

Nutch作为开放源代码搜索引擎将会更加透明,从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外,有的搜索引擎依照网站所付的费用, 而不是根据它们本身的价值进行排序. 与它们不同, Nucth没有什么需要隐瞒, 也没有动机去扭曲搜索的结果.Nutch将尽自己最大的努力为用户提供最好的搜索结果.

【全文】
Nutch 是一个刚刚诞生开放源代码(open-source)的web搜索引擎.

Nutch作为开放源代码搜索引擎将会更加透明,从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外,有的搜索引擎依照网站所付的费用, 而不是根据它们本身的价值进行排序. 与它们不同, Nucth没有什么需要隐瞒, 也没有动机去扭曲搜索的结果.Nutch将尽自己最大的努力为用户提供最好的搜索结果.

Nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. 为了完成这一宏伟的目标, Nutch必须能够做到:

每个月取几十亿网页
为这些网页维护一个索引
对索引文件进行每秒上千次的搜索
提供高质量的搜索结果
以最小的成本运作

nutch内部工作流程

1. 创建一个新的WebDB (admin db -create)。
2. 把开始抓取的跟Url 放入WebDb (inject)。
3. 从WebDb的新 segment 中生成 fetchlist (generate)。
4. 根据 fetchlist 列表抓取网页的内容 (fetch)。
5. 根据抓取回来的网页链接url更新 WebDB (updatedb)。
6. 重复上面3-5个步骤直到到达指定的抓取层数。
7. 用计算出来的网页url权重 scores 更新 segments (updatesegs)。
8. 对抓取回来的网页建立索引(index)。
9. 在索引中消除重复的内容和重复的url (dedup)。
10. 合并多个索引到一个大索引,为搜索提供索引库(merge)。


我的测试机器的执行命令:

cd work/java_work/search_engine/open_src/nutch-0.7.2

一次性:

../bin/nutch crawl urls -dir invader -depth 3 -topN 50

分解:

1. 创建数据库
../bin/nutch admin -local test -create

2. 把根URL放到数据库中
../bin/nutch inject -local test -urlfile urls

3. 把数据库中的URL取出到块中
../bin/nutch generate test test/segments

4. 根据取出的URL进行WEB下载
s1=`ls -d crawl/segments/2* | tail -1`
echo $s1
../bin/nutch fetch test/segments/20060628160619

5. 把下载的web更新到数据库中
../bin/nutch updatedb test test/segments/20060628160619

6. 重复3-5步骤,直至要下载网页树的深度
../bin/nutch generate test test/segments
../bin/nutch fetch test/segments/20060628162458
../bin/nutch updatedb test test/segments/20060628162458

7. 建立索引
../bin/nutch index indexes test/linkdb test/segments/*

你可能感兴趣的:(Web,工作,算法,搜索引擎)