Tup2王鹏云:实时搜索架构分析
Upcoming SlideShare
Loading in...5
×
 

Tup2王鹏云:实时搜索架构分析

on

  • 1,389 views

 

Statistics

Views

Total Views
1,389
Views on SlideShare
1,389
Embed Views
0

Actions

Likes
0
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tup2王鹏云:实时搜索架构分析 Tup2王鹏云:实时搜索架构分析 Presentation Transcript

    • 实时搜索架构分析王鹏云wangpengyun@gmail.com@wangpengyun
    • 内容提要• 初识实时搜索• 搜索系统的基础知识• 传统搜索和实时搜索的区别• 实时搜索系统架构• 实时搜索的难点• 实时搜索开源工具
    • 初识实时搜索• 实时搜索不是新鲜事物 – 新闻搜索,社区搜索…… – 微博火爆让实时搜索成为热点• 商业价值 – 新信息聚合和放大 – 热门话题和趋势分析 – 搜索广告• 主要实时搜索引擎 – Google 、 bing 、 twitter 、 friendfeed……
    • 搜索系统的基础知识• Crawling – 抓取、超链分析• Indexing – 内容提取、分词、倒排索引• Searching – 查询分析、索引查询• Ranking – TF/IDF 、 PageRank 、其他特征
    • 传统搜索和实时搜索的区别• 结果呈现 – 静态 vs 动态• 搜索效果 – 相关性 vs 实时性 – PageRank vs 社会化特征• 数据获取 – 抓取 vs 推送• 数据分布 – URL 分布 vs 时间分布
    • 实时搜索系统架构图 antispam Internet ram switch ram queue index A index B High-level ui searcher snapshot/ add/modify/del merge parallel search result data disk index curPush API Spider merge data searcher disk index his A disk index his B Internet more……
    • 架构设计要点• 信息获取 – Push API ( preferred ) – Spider 抓取 • 定向 + 制导式抓取 • 模板 + 启发式信息提取 – 队列 • Topic 订阅式 • 支持信息重放 – 独立 antispam 模块 • 易于性能扩展 • 快速演进
    • 架构设计要点( cont. )• 信息删除 / 修改 – 删除做标记(合并或重建时实际删除) – 修改 = 删除 + 添加• 内存索引 – 加快索引速 • 边写边读 – 控制内存占用大小 • 写到硬盘( snapshot ) • snapshot 实现?双索引结构 – 防止数据丢失 • redo 日志 • 队列重放
    • 架构设计要点( cont. )• 库合并( merge ) – 减少库数量,提高性能 – 对内存库, snapshot 和 merge 可合一 – 一定规模拆分出历史库(准静态)• 历史库 – 按需合并 – 综合考虑:合并频率、库规模、访问量• 查询合并 – 遍历查询所有库的结果并合并 – 分布式情况下,每个库自带 1 级 searcher , 2 级 searcher 合并所有 1 级的结果
    • 实时搜索的难点• 快 + 动态,让很多事情变得复杂! – 架构、算法、运维、升级…… – 考验工程化水平• Ranking 算法 – 基本 TF/IDF – 时间因素 – 社会化信息调权• 信息 anti-spam – 文本特征过滤 – 社会化特征过滤 – 动态行为特征过滤
    • 实时搜索的难点( cont. )• 海量规模下 – 数据切分 • 时间 +URL – Hotspot 问题 • Cache • Replication – 索引数据更新 • 分词调整、信息删除 / 修改、库调整…… • 每库独立更新,错峰更新 • Cache warming
    • 实时搜索开源工具• Zoie – Lucene-based ,源自 LinkedIn – 提供了 solr plugin – 足以应对中小规模的搜索需求• Sphinx – 1.10-beta 开始支持实时搜索 – 应用于 craigslist 、 netlog
    • Thanks! Q&A