没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
目录
试运行脚本说明――抓取全过程............................................................................................................................1
一、系统架构............................................................................................................................................................3
二、Nutch 的安装测试.............................................................................................................................................6
关于 Nutch 的 segread TOOL.................................................................................................................................7
关于 nutch analyze db..............................................................................................................................................9
Nutch 中分词的嵌入...............................................................................................................................................11
Nutch 中文问题.......................................................................................................................................................11
Nutch 中爬取网页过程中 url 的过滤问题............................................................................................................12
Nutch 中的插件结构...............................................................................................................................................12
类剖析
UTF-8.......................................................................................................................................................................15
Segments 数据的读取.............................................................................................................................................16
FetchedSegments 类 – 通过 hit 读取所有数据....................................................................................................16
NutchBean 中索引加载顺序..................................................................................................................................16
Nutch 查询服务器配置方法...................................................................................................................................17
Nutch 中脚本命令与类的对应关系.......................................................................................................................18
Nutch 中查询处理...................................................................................................................................................18
研究计划――设计与源码:
、 的实现机制,以及类的装载机制
、 原理
、
、 修改 方法,减少乱码――主要针对中文问题
、 研究 插件,实现个性化索引
、 学习聚类,提高检索精度,使用户能更快找到想要内容
!、 "#,"
、 $% 中查询用法与其 &
'、 (#)*
+、 缓存,网页快照的实现――可参考 (#) 中 &
、查询过程中如何设置每个域的权重
、 ),
、 (#)-. 的实现机制
、 摘要速度问题
、 /实现原理
、 查询插件的实现机制,特别是 - 的作用
!、 重点研究对象: 包, 包
试运行脚本说明――抓取全过程
这个脚本是 # 在 中说明的整理。脚本中的命令最好通过脚本依次运行,0、0 和0 三个变量的赋
值表达式是一样的,但三个值不相同,这依赖于运行的上下文。我第一次运行时,就犯了弱智的错误,拆开运行,结
果出错。12
初始准备
3& 建立目录存放 4&&
3
&5#)&6# 建一个新的空的数据库
第一轮抓取
&5#)7#&68.#.6&+++ 从 9:;< 列表中取得 " 并加入数据库
&5#)& 根据数据库内容,生成一个抓取列表=.#)2
>?65@A6? 刚才生成的抓取列表放在最后一个目录中,取其名
&5#).#)0 利用机器人抓页面
&5#)&&0 利用抓取结果更新数据库
第二轮抓取
&5#)8& 迭代 次分析页面的链接
&5#)&6(+++ 将排行前 +++ 个 " 生成新的抓取列表
>?65@A6? 执行抓取、更新、并迭代 次分析链接
&5#).#)0
&5#)&&0
第三轮抓取
&5#)8&
&5#)&6(+++
>?65@A6?
&5#).#)0
&5#)&&0
&5#)8& (为下一次做准备?)
索引并去重
&5#)0
&5#)0
&5#)0
&5#)
重启 #
#) 在5 所在的目录中启动
、脚本的改动与下载
9:;< 的文件太大了,下载不易,如果仅为实验,似乎也没必要从那里选 " 。我改了一下脚本,在
0(-B;:C 目录下建立一个 文件,里面一行一个打算搜索的网站的 ",#) 将从这个 中取站
点的 "。
脚本可以下载以参考D运行脚本放在0(-B;:C 目录下,参考下列命令运行:
))
EEEEEE
世纪是信息的时代,也是网络的时代。不断通畅与进步的互联网在给人们带来浩如烟海的网络信息的同时,也容
易使人在查询自己所需的有用的相关信息时陷入迷茫。搜索引擎正是为了满足人们网络信息搜索应运而生的网络工具,
它是互联网信息查询的导航针。现在的商业搜索引擎不少,但都是保密的,不便研究。而 (#)是一个开源 $/实现
的搜索引擎,它提供了我们运行自己的搜索引擎所需的全部工具。
(#) 是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。商业的搜索引擎排序算法都是保密的 ,
我们无法知道为什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允许竞价排名,比如百度,这样
的索引结果并不是和站点内容相关的。因此(#)对学术搜索和政府类站点的搜索来说,是个好选择。因为一个公平
的排序结果是非常重要的。
了解一个大型分布式的搜索引擎如何工作是一件让人很受益的事情,但是我们并没有 的源代码,因此学习搜
索引擎 (#) 是个不错的选择。(#) 的核心部分目前已经被重新用:#实现,而 :#是一个分布式
的处理模型,最先是从F实验室提出来的。
(#) 吸引了很多研究者,他们非常乐于尝试新的搜索算法,因为对 (#)来说,这是非常容易实现扩展的。(#)
非常灵活,它可以被很好地客户订制并集成到应用程序中。使用插件机制, (#) 可以作为一个搜索不同信息载体的
搜索平台。当然,最简单的就是集成 (#) 到你的站点,为用户提供搜索服务。
下面分析一下 (#) 搜索引擎系统的特点。
一、系统架构
总体上 (#) 可以分为 个部分:抓取部分和搜索部分。抓取程序抓取页面并把抓取回来的数据做成反向索引,搜
索程序则对反向索引搜索回答用户的请求。抓取程序和搜索程序的接口是索引,两者都使用索引中的字段。抓取程序
和搜索程序可以分别位于不同的机器上。下面详细介绍一下抓取部分。
抓取部分:
抓取程序是被 (#) 的抓取工具驱动的。这是一组工具,用来建立和维护几个不同的数据结构: 4&&,
.,)。下面逐个解释这三个不同的数据结构:
、)4&&,或者 G&9*。这是一个特殊存储数据结构,用来映像被抓取网站数据的结构和属性的集
合。G&9*用来存储从抓取开始(包括重新抓取)的所有网站结构数据和属性。G&9*只是被抓取程序使用,搜索
程序并不使用它。G&9*存储 种实体:页面和链接。页面表示网络上的一个网页,这个网页的 作为标示被索
引,同时建立一个对网页内容的 :9哈希签名。跟网页相关的其它内容也被存储,包括:页面中的链接数量(外链
接),页面抓取信息(在页面被重复抓取的情况下),还有表示页面级别的分数 #。链接表示从一个网页的链接
到其它网页的链接。因此G&9*可以说是一个网络图,节点是页面,链接是边。
、%。这是网页的集合,并且它被索引。% 的 #)是抓取程序使用的 列表,它是从G&9*
中生成的。#)的输出数据是从.#)中抓取的网页。#) 的输出数据先被反向索引,然后索引后的结果被存
储在 中。% 的生命周期是有限制的,当下一轮抓取开始后它就没有用了。默认的重新抓取间隔是 +
天。因此删除超过这个时间期限的 是可以的。而且也可以节省不少磁盘空间。%的命名是日期加时间,
因此很直观的可以看出他们的存活周期。
、)。索引库是反向索引所有系统中被抓取的页面,它并不直接从页面反向索引产生,而是合并很多小
的 的索引产生的。(#)使用"#来建立索引,因此所有 "# 相关的工具H都用来建立索引库。需
要说明的是 "# 的 的概念和 (#) 的 概念是完全不同的,不要混淆。简单来说"#的
是"#索引库的一部分,而 (#)的 % 是 G&9* 中被抓取和索引的一部分。
抓取过程详解:
抓取是一个循环的过程:抓取工具从 G&9* 中生成了一个.#)集合;抓取工具根据 .#) 从网络上下载网
页内容;工具程序根据抓取工具发现的新链接更新 G&9*;然后再生成新的 .#);周而复始。这个抓取循环在
#) 中经常指:5.#)5循环。
一般来说同一域名下的链接会被合成到同一个.#)。这样做的考虑是:当同时使用多个工具抓取的时候,
不会产生重复抓取的现象。(#)遵循&C##D可以用 &定义保护私有网页数据不被抓去。
上面这个抓取工具的组合是 (#) 的最外层的,也可以直接使用更底层的工具,自己组合这些底层工具的执行顺
序达到同样的结果。这是 (#) 吸引人的地方。下面把上述过程分别详述一下,括号内就是底层工具的名字:
、创建一个新的 G&9*=&6#2。
、把开始抓取的跟 放入 G&9&=7#2。
、从 G&9& 的新中生成.#)=2。
、根据.#)列表抓取网页的内容=.#)2。
、根据抓取回来的网页链接 更新G&9*=&2。
、重复上面 6 个步骤直到到达指定的抓取层数。
!、用计算出来的网页 权重#更新=2。
、对抓取回来的网页建立索引=2。
'、在索引中消除重复的内容和重复的 =2。
+、合并多个索引到一个大索引,为搜索提供索引库=2。
在创建了一个新的 G&9* 后,抓取循环5.#)5就根据最先第二步指定的根在一定周期下自动循
环了。当抓取循环结束后,就会生成一个最终的索引(第 ! 步到第 + 步)。需要说明的是:上面第步中每个
的索引都是单独建立的,之后才消重(第 ' 步)。第 + 步就是大功告成,合并单独的索引到一个大索引库。
9工具可以从的索引中去除重复的 。因为G&9*中不允许重复的 ,也就是说.#)中不会
有重复的 D所以不需要对.#)执行操作。上文说过,默认的抓取周期是 + 天,如果已经生成的旧.#)没
有删除,而又生成了新的 .#)这时还是会出现重复的 的。当只有一个抓取程序运行的时候是不会发生上述情况的。
从上面的介绍可以看出,一般情况下我们只要从头执行的程序就可以了,不需要接触底层的工具。但是搜索引擎有
很多“意外”,很多的时间需要花费在维护上,所以底层的工具也是需要掌握的。
(#)学习笔记
清风逐月6&6++ 66 11++
在 F 里面搜索了一些 (#) 的资料,还真不多。今天画了两个小时搞了一通,把一些心得纪录下来。
我的 73是 ,# 是 +
下载 +!版本的包:里面已经包含了 4 文件,所以不需要 编译了
安装 -4,这个没什么好说的。
把 (#) 借压缩到 915#)
在 915#) 下面建立一个文件(没有后缀)
)155444#5
在 91I#)I#.I#46. 里面,加入
JK)155444#5
环境变量加入
(-B$LB;:C>91I73+B+
!打开 #4 窗口,
#91I#)
在 91I#) 下面执行
&5#)#46#46)MN#4
这个命令会在当前目录下建立一个 #4 的文件夹,然后对刚才的 444# 的网站开始检索。
层数是 层,一般最好 + 层。然后结果输出在 #4 里面
将 #)6+!4 拷贝到 #54& 下面,改名 #)
'在 91I#I#.I-I#)I建立 #)
O-)>PP&>PP/>PP#*>P#)P5M
+启动 #,等 4 解开以后,打开
91I#I4&I#)IGC*6H(I#I#)6
修改如下
O#)6#.M
OM
OM#)O5M
O/M91I#)I#4IO5/M
O5M
O5#)6#.M
剩余17页未读,继续阅读
资源评论
雨落
- 粉丝: 83
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功