1 / 38

B2B 搜索架构设计 2011 年 8 月

B2B 搜索架构设计 2011 年 8 月. 目录. isearch 发展路线图 isearch 系统架构设计 imatch 系统架构设计 其他系统架构设计 Ilike Iprofile Open Search. 课程大纲. isearch 发展路线图 ( 演变历史总览 ) isearch 及分支的发展和演变 isearch 各系统关系图 isearch 系统架构设计 为什么要开发 isearch isearch 系统的架构及设计思路 isearch 系统架构的发展 imatch 系统架构设计 imatch 系统解决什么问题

rollo
Download Presentation

B2B 搜索架构设计 2011 年 8 月

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. B2B搜索架构设计 2011年8月

  2. 目录 • isearch发展路线图 • isearch系统架构设计 • imatch系统架构设计 • 其他系统架构设计 • Ilike • Iprofile • Open Search

  3. 课程大纲 • isearch发展路线图(演变历史总览) • isearch及分支的发展和演变 • isearch各系统关系图 • isearch系统架构设计 • 为什么要开发isearch • isearch系统的架构及设计思路 • isearch系统架构的发展 • imatch系统架构设计 • imatch系统解决什么问题 • imatch系统的架构设计 • imatch系统架构的演变 • 其他系统架构设计 • ilike系统架构介绍 • iprofile系统架构介绍 • open search系统架构介绍

  4. isearch发展路线图 2009 2010 2011 Isearch2.0 2006~2007年 吴轶群 问天I 2009年 阿里云 问天II 2010年 阿里云 问天III 2011年 阿里云 失败 独立 尝试 开拓 YSE 2002年 孔维青 Isearch1.0 2005年 孔维青 Isearch3.0 2008年 孔维青 Isearch4.0 2009年 沈加翔 Isearch4.1.6 2010年 林强 Isearch4.2 2011年 王元创 前身 创立 发展 突破 回归 归一 IMatch1.0 2006年 余斯恒 IMatch2.0 2009年 孔维青 分支 重构 Ilike1.0 2010年 林强 Ilike2.0 2011年 姜罕 创立 发展 Iprofile1.0 2011年 陈黎明 创立

  5. 系统关系图 搜索引擎 广告引擎 主题推广引擎 个性化推荐 可定制化搜索服务 imatch系统 ilike系统 iprofile系统 open search平台 isearch平台 iprocess数据处理平台

  6. 旧Yahoo Search Engine(YSE)系统介绍 不足: • 每天一次全量索引(build),不支持增量更新和即时更新 • 只能单机检索,支撑数据量上限是200w/台 • 高并发能力不高,查询性能比较低 Request Request Load Balancer Search&Index Search&Index build DB 优点: • 维护简单,cache命中率高

  7. 为什么要开发isearch • 旧引擎经多年的开发, 维护成本逐渐走高 • 代码冗余,组织结构混乱 • 核心层与网站商业逻辑相互混杂,版本不统一,难以共享 • 模块化欠清晰,不利于功能扩展 • 不能在Windows下开发和调试,开发效率低 • 在旧引擎上实施及时更新和分布式困难 2005年9月13号

  8. isearch1.0分布式物理架构 request request Load Balancer Merge Server Merge Server Merge Server Load Balancer Load Balancer Load Balancer Search Server Search Server Search Server Search Server Search Server Search Server Search Server Search Server Search Server Data 1 Data 2 Data N • 1.0系统必须解决的几个问题 • 数据容量的问题 • 索引数据必须增量更新的问题 • 各网站版本统一的问题 集中全量build 集中增量build 每天 DB 每5分钟

  9. 开发isearch1.0时的road map Q1/05 Q2/05 Q3/05 Q4/05 特点: • 支持分布式(通过 apache module方式实现) • 支持增量更新(学习lucene技术) • 集成旧系统索引结构,代码架构重构(保持查询语法兼容) • 排序和分词器可插件化,范围过滤和属性精确搜索实现,词典分词算法初次尝试 核心开发 Search Engine重写: ISearch 即时更新 分布式性能扩展 新需求开发和支持 性能和功能调试 分布式查询 属性搜索 查询精确度改进 分布式索引 进一步提高精确性 整数任意范围过滤 分布式上线 排序插件支持 词典支持 分段索引 应用和支持 统一版本(中国站) 统一版本(国际站) 统一版本(淘宝)

  10. 开发isearch1.0时的设计资料

  11. 新旧引擎性能对比 搜索引擎小组测试情况(10,20个用户并发,数据来自于QA 2005.4.26号) 2005年4月26号

  12. Search1.1&Index 1 Search2.1&Index 2 SearchM.1&Index M Search1.2&Index 1 Search2.2&Index 2 SearchM.2&Index M Search1.N&Index 1 Search2.N&Index 2 SearchM.N&Index M isearch3.x系统物理结构图 Request Request Load Balancer Merge Server Merge Server Merge Server build1 build1 build1 admin DB Hadoop join

  13. isearch3.0要解决的问题 • 支持全文索引和提升单台机器的数据容量和访问量 • 即时更新、增量更新、即时修改 • 支持可插件化和二次开发 • 增强检索功能 • 多关键字任意逻辑组合 • 属性搜索,范围搜索,区域搜索 • 应用平台化 • 论坛(forum),咨询(news) -高相关性要求和全文索引 • 专业化搜索(offer,auction,P4P,local) -专业性和智能搜索或特殊搜索逻辑要求较高 • 类数据库搜索应用(店铺shop,公司company,用户表user等)-没相关性要求,类数据库的搜索功能

  14. isearch3.x系统逻辑架构图 • 包括索引系统、检索系统和知识库系统

  15. isearch3.x系统代码结构图

  16. isearch3.0新特性 • 多package应用模型(学习VESPA) • 一个package可以包含一个或多个字段 • 分词器、相关性计算、查询对象可配置化 package2 A,R,Q package1 A,R,Q field 1 field 4 field 1 field 2 field 3 fieldbit3 fieldbit4 fieldbit1 fieldbit2 主索引应用模型 Index File Index File area_name?q=pkg1::fieldbit1:xxx OR pkg2::fieldbit3:xxx

  17. isearch3.0新特性 • 全文检索和单字段检索并存 • 支持产品属性的模糊、精确、范围等检索功能 • 支持贸易通在线状态等即时变化信息搜索 • 多层cache作用 • 位置信息缓冲读取 • 查询关键字LRU算法进行缓存(不影响即时更新) • 对每个查询请求通过定时过期方法进行cache • 多方位插件支持(平台化) • 分词插件--作用于索引和查询 • 排序规则插件--解决特殊商业规则 • 相关性计算方法插件--影响最终排序结果 • 返回结果可配置--结果返回内容灵活多变 • 查询方法插件--满足特殊搜索要求

  18. isearch3.0性能表现 • 应用服务器推荐配置 • 硬件要求:8G memory, 4块scsi硬盘做raid0, 4cpu • 操作系统:64位linux,内核2.6 • Apache2.x, worker模式 • 性能表现 • 索引文件大小(519w offer_gb数据) • 数据 9.3G, 索引8.0G • 查询性能(两层cache时) • 32位4g 519w数据 raid0, LoadRunner 10个用户 多线程 145ms, 68.05hit/s load:~10 • 64位16G 1100w数据 LoadRunner 20个用户 多线程 57ms, 76.217hit/s load:~3.38 2008年3月5号

  19. Search1.1&Index 1 Search1.1&Index 1 SearchM.1&Index M SearchM.1&Index M Search1.2&Index 1 Search1.2&Index 1 SearchM.2&Index M SearchM.2&Index M Search1.N&Index 1 Search1.N&Index 1 SearchM.N&Index M SearchM.N&Index M isearch4.x系统物理结构图 application Request Request Blender cluster Proxy cluster Configuration Server(clustermap) Monitor Server(simon) Merge Cluster Monitor Server(simon) Configuration Server(clustermap) Merge Cluster IProcess Batch Computing processer Build Job DFS/分布式存储 processer Build Job 互联网 DB processer Build Job

  20. isearch4.x的变化 • 彻底去掉apache服务器,改用独立开发的多线程服务器,并由两层服务结构变为三层服务结构 • 增加配置管理服务器(clustermap)和监控服务器(simon) • sort框架重构,查询性能优化 • 增加实时数据分发引擎(dispatcher)系统 Blender Server Apache(merge) Merge Server Merge Server Apache(search) Apache(search) Search Server Search Server Search Server

  21. 实时数据分发引擎(dispatcher) 架构图

  22. Blender&Merger Server逻辑架构图

  23. isearch4.x性能表现 2010年9月20号

  24. Isearch产品设计小结 • 需求驱动 --- 有需求 • 业务需求 • 性能需求 • 吸纳和融合 --- 有优势 • 融合lucene技术 • 吸纳vespa技术 • 不断提升 --- 有收益 • 性能提升 • 功能创新

  25. imatch引擎系统解决什么问题

  26. P4P业务整体架构图

  27. 允许访问验证,格式化输出结果,log,IP地址转换地域允许访问验证,格式化输出结果,log,IP地址转换地域 imatch1.0架构设计图 query重写,竞价,过滤非法词,转换搜索结果 PHP 前端 … PHP 前端 Merge … Merge Adb_K:关键词查询集群,bidword Adb_C:类目查询集群,offer Adb_A:数据查询集群,offer detail 通过关键词归一化实现深度精确匹配 Search1.1 Adb_K Search2.1 Adb_C Search3.1 Adb_A … … … 全量索引,竞价广告即时更新 Search1.n Adb_K Search2.n Adb_C Search3.n Adb_A Dispatcher Build 通知 DB 1.广告数据和竞价关键字查询分离,无法融合 2.消息更新不够即时 3.数据容量有限

  28. 允许访问验证,格式化输出结果,日志,IP地址转换地域,黑白名单,竞价规则,queryrewrite允许访问验证,格式化输出结果,日志,IP地址转换地域,黑白名单,竞价规则,queryrewrite imatch2.0架构设计图 blender … blender offer,bidword,customer三张按member_id求模拆分,多表join计算 精确匹配,扩展匹配,全文匹配 关键词归一化,推广组的实现 Merge … Merge Search1.1 o,b,c三表 … Searchm.1 o,b,c三表 … … … 全量索引,竞价消息实时更新 Search1.n o,b,c三表 Searchm.n o,b,c三表 … Dispatcher Build 通知 DB 1.完全分布式,性能不在是瓶颈 2.实时更新(时间段投放,地域投放) 3.与isearch系统的查询结果可以融合(同等条件过滤)

  29. ilike系统主要组成模块 CMWeb transmit UI generator CMServer Scheduler FeatureProxy QueryWriter BT TXP IMatch Spider Extractor Blender Merger Searcher CMBid(plugin) CMSort(plugin) Match(plugin) Labeling Storage Anet AliWS AdMLR ACookie Alog

  30. 1,13.url,cookie,pid,title,offer_num,ip… 24.offers|html code 12.empty result CMWeb socket Transmit Local API call 12.empty result 2,14.url,pid,title,offer_num,ip… 23.offers CMServer 19 .features 3,15 FeatureProxy Scheduler QueryWriter 20 .query 11,18 5.no feature 21.query 22.offers 6.url,pid,title,info 17.features 4,16.url TXP IMatch 22 Blender Merger Spider Storage 21 21 7.url,page content 22 Searcher 10.url,features,expiretime Extractor 22 21 9.features 8.url,page fragment Labeling Indexer PageAnalyzer offer_area_1 … offer_area_n features:keywordlist,weight list,category ilike系统主要交互

  31. ilike系统详细架构图

  32. iprofile -- 个性化推荐系统架构图

  33. 个性化推荐(iRecommend)与ilike系统的整合 投放平台 可定制的样式页面 可交互的推荐页面 Discover Web 其他Web Server CM Server BT iRecommend TXP isearch/imatch iprofile WAI PKL 花为媒

  34. Open Search应用场景

  35. Open Search架构设计

  36. iprocess系统架构图

  37. 架构设计总结 • 涉猎广 • 需求全面了解,可预见的潜在需求适当畅想 • 同类型系统的学习和分析 • 趋完美 • 架构越简单越合理 • 计算消耗和空间消耗的平衡 • 高性能 • 架构的性能优化高于代码的性能优化 • 关键性算法和关键是技术是必须攻克的

  38. Q&A 谢谢!@孔维青_阿里

More Related