自己玩垂直搜索

前言

由于业余爱好,想折腾一个垂直搜索引擎来玩玩,一方面想搞明白这里的水有多深(确实很深),另一方面满足自己的需要,去博客园,CSDN怕一些好文章来把玩把玩。从断断续续的玩了一个月的情况来看,有些成果,但是技术难点还在后见面。我也会不间断的补充完善,估计至少还需要1年的时间吧。如果你也希望能和我一起探索,请锁定本系列。但是你也无可避免的会和我一起走许多弯路(哈哈,被坑了吧),但是我所走的捷径,一样也会成为你的捷径。祝咱们成功!

这是本项目的svn地址(记得随时更新):http://my-crawler-engine.googlecode.com/svn/trunk/

跟随本系列,你需要如下的技能:

  • 1. 熟悉C++0x标准
  • 2. 善于利用C++模板进行抽象
  • 3. 熟悉同步、异步、阻塞、非阻塞概念(不熟悉的同学请到这里)
  • 4. 熟悉基本的HTTP协议(这里可以帮你释疑)
  • 5. 熟悉正则表达式(自己google吧)

如果你想了解一下技术(恭喜,我们是一条道上的):
  • 1. 异步HTTP
  • 2. 正文提取算法(去噪)
  • 3. 多媒体(PDF、WORD)资源的抽取
    4. web数据图
    5. 网页内容去重
    6. 分类与聚类
    7. 索引库设计实现
    8. http服务器设计实现

如果你有以下特征之一,可能会带给你不适,请谅解:
  • 1. 天然喷
  • 2. 反车轮党
  • 3. 反模板联盟

目标

本系列完成后需要达成的目标:
  • 可伸缩性,在增加额外的资源后提高爬取质量
  • 性能,能有效利用克重系统资源,CPU,Disk I/O, Network I/O
  • 质量,爬虫优先抓去有用的网页
  • 新鲜性,持续运行,而且不只是怕取一次
  • 更新,对经常更新的页面进行重新抓取
  • 可扩展性,能够支持新的数据格式和新的抓取协议

简介
垂直搜索是针对一个行业的专业搜索,例如生活信息,商品价格,专业博客等等。详情可以参看百度百科。可以看到,垂直搜索的应用面是相当广泛的。

需要的技术:

  1. 定向的网络爬虫
  2. 网页结构化信息抽取
  3. 中文分词,全文检索
  4. 信息处理

设计架构
这是爬虫的结构图


这是wiki上对爬虫的结构剖析图,在这里,重新更新详细的分解下,爬虫会包括以下几个模块:
  • 1. 下载(对web网页的下载)
  • 2. 分析(分析网页中包含的有效信息及其他链接)
  • 3. 处理(把有效内容进行保存,入库)
  • 4. 调度器(统筹,对下载、分析、处理进行异步运行,调度)

信息处理模块、搜索模块目前没了解,暂不上图


核心模块及技术难点介绍:

1. 需要处理的URL队列
2. 异步HTTP
3. 正文分析匹配算法
4. 数据库设计
5. 多媒体抽取
6. 网页去噪
7. 分类聚类
8. 中文分词(oh, my god!)
9. 索引库
10. 搜索界面

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值