FAST ESP 搜索系统 技术中心 2009 年 9 月
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
系统结构 Administration Services 内容聚合 web DB file 文档处理 内容 文档 索引系统 搜索系统 查询和 结果处理 用户
<ul><li>Content— 内容。 </li></ul><ul><li>比如: html 页面、 db 表、 word 文档等等原始数据 </li></ul><ul><li>Document 和 Document Element - 文档...
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
获取内容( feeding content ) <ul><li>获取内容的方式 </li></ul><ul><li>Enterprise Web Crawler </li></ul><ul><li>File Traverser </li></u...
Collections <ul><li>获取的内容都会进入 collections </li></ul><ul><li>一个 collection 是可搜索文档的一个逻辑组 </li></ul><ul><li>Collection 属性 </l...
<ul><li>内容会被处理为 document 。 </li></ul><ul><li>重要的 Document 元素 </li></ul><ul><ul><li>url </li></ul></ul><ul><ul><li>Docid= 初...
<ul><li>支持分布式的抓取 </li></ul><ul><li>支持增量抓取和更新 </li></ul><ul><li>支持通过 crawler store 重新获取内容 </li></ul><ul><li>Request rate : ...
File Traverser 其他文件 PDF 文件 XML 文件 File Traverser Document Processing DB collection collection collection
<ul><li>可以转换远程文件服务器中的文件 </li></ul><ul><li>支持 PDF 、 ppt 、 word 、 txt 等文件的转换 </li></ul><ul><li>批量发送文件到 content api </li></ul...
JDBC Connector JDBC  Connector Document Processing DB Result Set sql 内 容 分 发 每行 1 个 文档 collection collection collection
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
文档处理系统 Document Processing  Engine 内 容 API 内 容 分 发 Search index index QR SFE collection collection collection
文档处理系统 <ul><li>包括 </li></ul><ul><li>Content Distributors 内容分发 </li></ul><ul><ul><li>Content API 提交文档到内容分发器 </li></ul></ul>...
内容流 Document Processing  Engin Collection 1 内 容 API 内 容 分 发 index searchApi SFE Collection n Collection 2 API 客户扩展的处理器
Document 、 Collection 、 Pipeline 、 Stage <ul><li>Document </li></ul><ul><ul><li>可以被搜索的实体 </li></ul></ul><ul><ul><li>属性集,属性...
Document 、 Collection 、 Pipeline 、 Stage <ul><li>Collection </li></ul>Collection A Collection B
Document 、 Collection 、 Pipeline 、 Stage <ul><li>Pipeline </li></ul><ul><ul><li>由 stage 组成 </li></ul></ul><ul><ul><li>一个 c...
Document 、 Collection 、 Pipeline 、 Stage <ul><li>Stage </li></ul><ul><ul><li>读取属性值 </li></ul></ul><ul><ul><li>分析计算 </li></...
Entity Extraction <ul><ul><li>从源属性取出感兴趣的实体把结果保存在目地属性 </li></ul></ul><ul><ul><li>方法 </li></ul></ul><ul><ul><ul><li>基于字典 </l...
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
<ul><li>为搜索的 cluster 定义的 index 的“ schema” </li></ul><ul><ul><li>包含 fields </li></ul></ul><ul><ul><li>配置文档处理属性( tokenizatio...
<ul><ul><li><index-profile name=“default”> </li></ul></ul><ul><ul><li><field-list></field-list> </li></ul></ul><ul><ul><li...
<ul><li>Fields </li></ul><ul><ul><li>Field 的属性 </li></ul></ul><ul><ul><ul><li>Linguistics </li></ul></ul></ul><ul><ul><ul>...
<ul><li>Scope field </li></ul><ul><ul><li>对应结构化的 xml 文档。等级结构 . </li></ul></ul><ul><ul><li>Type:text </li></ul></ul><ul><ul...
搜索处理系统 index 搜索 引擎 SFE Search Api Query and Result Server query 结果 Query& 参数 Query& 参数 HTTP client Text/xml 结果 Enhanced 结果...
<ul><li>Field 的相关属性 </li></ul><ul><ul><li>Index </li></ul></ul><ul><ul><li>Max-index-size </li></ul></ul><ul><ul><li>Bound...
<ul><li>Composite Field </li></ul><ul><li><composite-field name=&quot;content&quot; default=&quot;yes&quot; query-tokenize...
<ul><li>Sort 属性 </li></ul><ul><ul><li>Sort : yes |no. 前 4 个字符 </li></ul></ul><ul><ul><li>Fullsort:yes| no |latent </li></u...
<ul><li>Composite Field </li></ul><ul><li><composite-field name=&quot;content&quot; default=&quot;yes&quot; query-tokenize...
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
Rank Profile <ul><li><rank-profile name=&quot;default&quot; rank-model=&quot;default&quot; default=&quot;no&quot;  </li></...
相关术语 ( Relevancy Terminology ) For muli-term queries:the shorter the distance between query terms in a document,the higher...
相关术语 ( Relevancy Terminology ) 计算 context 和 proximity 时额外用到的统计数据。 The greater the number of query terms present in the sam...
相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) R=query q  在 document d 中的 rank 值 S=document d 的静态 rank 值,与 query 无关 ...
相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) (boost_coefficient*w_quality/100)*static_rank_field(d) <ul><li>boost_...
相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) (w_freshness/100)*fn(time scale,document age) <ul><li>w_freshness </l...
相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) <ul><li>单 term 的 query </li></ul>(Fn(FO)+fn(NO)+W_authority/100*fn(Ex...
相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) <ul><li>Multi_term 的 query </li></ul>D(d,q1)+D(d,q2)+…+W_context/100*...
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
Fast ESP 的语言学特性 <ul><li>自动探测 79 种语言 </li></ul><ul><li>高级特性支持 30 种语言,包括中文 </li></ul>分词 Tokenization 符号标准化。 Character normal...
Fast ESP 的语言学特性 增加索引时间 增加内容处理时间 增加磁盘使用 好的用户体验 坏处 好处
Fast ESP 的语言学特性 不需要重新处理文档 需要重新处理文档 增加 QPS 省 query 时间 Proper name 和  phrase recognition 不影响 index 增加 index Anti-phrasing 、 ...
CJK 语言 <ul><li>定义 </li></ul><ul><ul><li>CJK- 中文、日文、韩文 </li></ul></ul><ul><ul><li>英文使用空格或标点符号作为单词之间的分隔符; </li></ul></ul><ul...
CJK 语言 <ul><li>Character normalization (符号标准化) </li></ul><ul><ul><li>全角到半角。->  Fast ESP 5.0 </li></ul></ul><ul><ul><li>半角到...
CJK 语言 <ul><li>中文分词规则 </li></ul><ul><ul><li>人名:姓和名的第一个字被分割为一个词。 </li></ul></ul><ul><ul><li>文档:李小龙  </li></ul></ul><ul><ul>...
CJK 语言 中华人民共和国 1.substring=1 中  华  人  民  共  和  国 2.substring=2 中华  华人  人民  民共  共和  和国 <ul><li>Substring </li></ul>
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
<ul><li>Fault Tolerance </li></ul><ul><ul><li>在软件或硬件故障时,提供服务的能力 </li></ul></ul><ul><ul><li>几种模式 </li></ul></ul><ul><ul><ul...
<ul><li>factor </li></ul><ul><ul><li>Content volumn </li></ul></ul><ul><ul><ul><li>系统可以处理的内容数量 </li></ul></ul></ul><ul><ul...
多节点体系 获取内容 文档处理子系统 索引子系统 搜索子系统 查询与结果处理 子系统 搜索用户 Admin 组件
多节点体系 - 文档处理子系统 文档处理器 文档处理器 内容分发 文档处理器 文档处理器 内容分发 <ul><li>多个组件可以增加可靠性、提供文档处理能力 </li></ul><ul><li>一个内容组件同时只能连接到一个内容分发器 </li...
多节点体系 - 索引子系统 indexer indexer 内容分发 indexer 索引分发 <ul><li>索引发发 </li></ul><ul><li>将文档分发到不同的 column </li></ul><ul><li>多个可以增加可靠...
多节点体系 - 索引子系统 Indexer ( master ) Indexer (  master  ) 内容分发 Indexer (  backup  ) 索引分发 <ul><li>Master indexer </li></ul><ul>...
多节点体系 - 索引子系统 Indexer (  master  ) 内容分发 索引分发 <ul><li>索引分发器提交文档操作到列的 master indexer </li></ul><ul><li>如果超过 indexers 失败的数操作不...
多节点体系 - 搜索和 QR 子系统 search R0C0 Top-level 分发 ( QR ) <ul><li>矩阵 </li></ul><ul><ul><li>Row— 可靠性和 query 性能 </li></ul></ul><ul>...
多节点体系 - 搜索和 QR 子系统 search R0C0 Top-level 分发 ( QR ) <ul><li>多 QR </li></ul><ul><ul><li>可靠性和负载均衡 </li></ul></ul>search R1C0 ...
多节点体系 -index 部署 <ul><li>Indexer 和 search 在同一节点 </li></ul><ul><li>Indexer 和 search 在不同节点 </li></ul>indexer Master indexer b...
多节点体系 -admin 子系统 <ul><li>Name service 和 License Manager 可以 fault tolerant 。 存在单点故障 </li></ul><ul><li>其他组件不支持 fault toleran...
Index Partitions 机制 <ul><li>每个 indexer 或 search 节点使用多个 indexing 的 partitions </li></ul><ul><ul><li>每个 partition 容纳了索引的文档 <...
Index Partitions 优化 <ul><li>尽可能保持最小的 Partition 是空的 </li></ul><ul><ul><li>索引新内容意味着重新索引最小 Partition </li></ul></ul><ul><ul><...
Index blacklisting <ul><li>Blacklisting 被用来提高移除文档的速度 </li></ul><ul><ul><li>Blacklisting index 仅仅包含被删除文档的 id </li></ul></ul...
Index blacklisting <ul><li>例子 </li></ul><ul><ul><li>Document A ( A-1 )已经被索引。位于 partition2 </li></ul></ul><ul><ul><li>Docum...
<ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></u...
部署结构 RI RS Ind RS RI RI RS RS RS RS QR Ind CP DP admin QR RT RT search10 search9 search5 search4 search3 search2 search1
部署结构 Ind DP QR QR RS RS RS RS RS RS RI RI RI Ind CP DP
<ul><li>Youku--------(2000 万 ) </li></ul><ul><li>Tudou--------(1400 万 ) </li></ul><ul><li>ku6  --------(3000 万 ) </li></ul...
索引字段 UGC- 现有字段: 建立专辑时使用 vuploadusername  视频上传用户 uuseeupdate 刷新时间 可以根据该字段导航 vsourcesite 来源网站 可以根据该字段导航 vtags  标签 可排序 vlengt...
索引字段 UGC- 准备扩充字段: 建立专辑 vuploaduserid 视频上传用户 ID 计算权重。可排序 vlink 引用次数 计算权重。可排序 vcomment 评论次数 计算权重。可排序 vpageview 观看次数 计算权重。可排序...
索引字段 专辑 - 现有字段: plvideocount 视频数 可以根据该字段导航 plchannel 频道 Vod 还是 ugc pltype 类别 plvideotitles 视频标题 plvideoinfo 视频信息 可以根据该字段导航...
FAST ESP 搜索系统 技术中心 2009 年 9 月
Upcoming SlideShare
Loading in …5
×

Fast Esp搜索系统

1,447 views
1,349 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,447
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Fast Esp搜索系统

  1. 1. FAST ESP 搜索系统 技术中心 2009 年 9 月
  2. 2. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容
  3. 3. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>系统结构 </li></ul><ul><li>相关术语 </li></ul>
  4. 4. 系统结构 Administration Services 内容聚合 web DB file 文档处理 内容 文档 索引系统 搜索系统 查询和 结果处理 用户
  5. 5. <ul><li>Content— 内容。 </li></ul><ul><li>比如: html 页面、 db 表、 word 文档等等原始数据 </li></ul><ul><li>Document 和 Document Element - 文档和文档元素。 </li></ul><ul><li>Index profile </li></ul><ul><li>collection </li></ul><ul><li>Search Profile— 由多个 collection </li></ul><ul><li>Row 、 Column </li></ul>相关术语
  6. 6. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>获取内容概述 </li></ul><ul><li>Collections </li></ul><ul><li>Document Model </li></ul><ul><li>Web 内容 ---Crawler </li></ul><ul><li>File 、 xml 内容 ---File Traverser </li></ul><ul><li>DB 内容 ---JDBC Connection </li></ul>
  7. 7. 获取内容( feeding content ) <ul><li>获取内容的方式 </li></ul><ul><li>Enterprise Web Crawler </li></ul><ul><li>File Traverser </li></ul><ul><li>Jdbc database connectors </li></ul><ul><li>第三方 connectors </li></ul><ul><li>Content Api </li></ul>Connectors ContentApi crawler File traverser Jdbc connectors 文 档 处 理 器 Fast esp 集成的 Fast 软件包 web DB file
  8. 8. Collections <ul><li>获取的内容都会进入 collections </li></ul><ul><li>一个 collection 是可搜索文档的一个逻辑组 </li></ul><ul><li>Collection 属性 </li></ul><ul><ul><li>名称 </li></ul></ul><ul><ul><li>属于单一的 search cluster </li></ul></ul><ul><ul><li>每个 collection 对应单个文档处理 pipeline </li></ul></ul><ul><ul><li>一个 collection 可以对应多个数据源。但是同一种数据源只能对应一个 </li></ul></ul>pipeline web DB file crawler jdbc File Trav Collection : Documents
  9. 9. <ul><li>内容会被处理为 document 。 </li></ul><ul><li>重要的 Document 元素 </li></ul><ul><ul><li>url </li></ul></ul><ul><ul><li>Docid= 初始为 url </li></ul></ul><ul><ul><li>Contentid=docid </li></ul></ul><ul><ul><li>Internalid=md5(docid)+”_”+collectionName </li></ul></ul><ul><ul><li>Data—default element </li></ul></ul><ul><ul><li>Xml---default element </li></ul></ul><ul><li>在通过其他处理器时, Contendid 和 internalid 保持不变 </li></ul>Document Model
  10. 10. <ul><li>支持分布式的抓取 </li></ul><ul><li>支持增量抓取和更新 </li></ul><ul><li>支持通过 crawler store 重新获取内容 </li></ul><ul><li>Request rate : </li></ul><ul><li>站外: 60s ;站内: 30s </li></ul><ul><li>Refresh interval : 1440s </li></ul><ul><li>针对传统网页抓取设计 </li></ul><ul><li>可以抓取 rss </li></ul>Web 内容 ---Crawler
  11. 11. File Traverser 其他文件 PDF 文件 XML 文件 File Traverser Document Processing DB collection collection collection
  12. 12. <ul><li>可以转换远程文件服务器中的文件 </li></ul><ul><li>支持 PDF 、 ppt 、 word 、 txt 等文件的转换 </li></ul><ul><li>批量发送文件到 content api </li></ul><ul><li>可以独立运行 </li></ul>File Traverser
  13. 13. JDBC Connector JDBC Connector Document Processing DB Result Set sql 内 容 分 发 每行 1 个 文档 collection collection collection
  14. 14. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>文档处理系统 </li></ul><ul><li>内容流 </li></ul><ul><li>Document 、 Collection 、 Pipeline 、 </li></ul><ul><li>Stage </li></ul><ul><li>文档处理 stage </li></ul><ul><li>Entity Extraction </li></ul>
  15. 15. 文档处理系统 Document Processing Engine 内 容 API 内 容 分 发 Search index index QR SFE collection collection collection
  16. 16. 文档处理系统 <ul><li>包括 </li></ul><ul><li>Content Distributors 内容分发 </li></ul><ul><ul><li>Content API 提交文档到内容分发器 </li></ul></ul><ul><ul><li>内容分发器分发文档到文档处理器 </li></ul></ul><ul><li>Document Processing Engine 文档处理引擎 </li></ul><ul><ul><li>提交处理的文档 </li></ul></ul><ul><ul><li>发送文档到 indexer </li></ul></ul>
  17. 17. 内容流 Document Processing Engin Collection 1 内 容 API 内 容 分 发 index searchApi SFE Collection n Collection 2 API 客户扩展的处理器
  18. 18. Document 、 Collection 、 Pipeline 、 Stage <ul><li>Document </li></ul><ul><ul><li>可以被搜索的实体 </li></ul></ul><ul><ul><li>属性集,属性值 </li></ul></ul><ul><ul><ul><li>在获取内容时被设置 </li></ul></ul></ul><ul><ul><ul><li>在文档处理时被计算 </li></ul></ul></ul><ul><ul><li>属性可以 map 到 index 中的 field </li></ul></ul>Document Processing Attributes Content Api Document elements Index Document fields Index profile
  19. 19. Document 、 Collection 、 Pipeline 、 Stage <ul><li>Collection </li></ul>Collection A Collection B
  20. 20. Document 、 Collection 、 Pipeline 、 Stage <ul><li>Pipeline </li></ul><ul><ul><li>由 stage 组成 </li></ul></ul><ul><ul><li>一个 collection 对应一个 pipeline </li></ul></ul><ul><ul><li>一个 pipeline 可以对应多个集合 </li></ul></ul>Content Doc init Doc Retri eval … Gen fixml Send To Indexer Indexing
  21. 21. Document 、 Collection 、 Pipeline 、 Stage <ul><li>Stage </li></ul><ul><ul><li>读取属性值 </li></ul></ul><ul><ul><li>分析计算 </li></ul></ul><ul><ul><li>修改或设置属性值 </li></ul></ul><ul><ul><li>可以扩展 </li></ul></ul>
  22. 22. Entity Extraction <ul><ul><li>从源属性取出感兴趣的实体把结果保存在目地属性 </li></ul></ul><ul><ul><li>方法 </li></ul></ul><ul><ul><ul><li>基于字典 </li></ul></ul></ul><ul><ul><ul><li>正则表达式 </li></ul></ul></ul><ul><ul><ul><li>Python code </li></ul></ul></ul>电影 电视剧 动漫 动作 喜剧 剧情 刘德华 周星 Title :天若有情 - 主演:刘德华 Title :电视剧 - 李小龙传奇 Title : Tag: 刘德华 Title : Tag: 电视剧
  23. 23. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>概述 </li></ul><ul><li>文档处理相关 </li></ul><ul><li>搜索处理系统 </li></ul><ul><li>Query 和结果处理相关 </li></ul>
  24. 24. <ul><li>为搜索的 cluster 定义的 index 的“ schema” </li></ul><ul><ul><li>包含 fields </li></ul></ul><ul><ul><li>配置文档处理属性( tokenization 、 lemmatization ) </li></ul></ul><ul><ul><li>配置 search 相关属性(那些 field 可以被搜索、怎样搜索) </li></ul></ul><ul><ul><li>配置 result 处理相关属性( navigation 和 result view 、 sort 、 ranking ) </li></ul></ul><ul><li>每个 cluster 只能对应一个 </li></ul><ul><li>XML 格式的配置文件 </li></ul>概述
  25. 25. <ul><ul><li><index-profile name=“default”> </li></ul></ul><ul><ul><li><field-list></field-list> </li></ul></ul><ul><ul><li><geo-secification></geo-secification> </li></ul></ul><ul><ul><li><scope-field-list></ scope-field-list> </li></ul></ul><ul><ul><li><composite-field></composite-field> </li></ul></ul><ul><ul><li><rank-profile></rank-profile> </li></ul></ul><ul><ul><li><result-secification></result-secification> </li></ul></ul><ul><ul><li></index-profile> </li></ul></ul>概述
  26. 26. <ul><li>Fields </li></ul><ul><ul><li>Field 的属性 </li></ul></ul><ul><ul><ul><li>Linguistics </li></ul></ul></ul><ul><ul><ul><li>Searching </li></ul></ul></ul><ul><ul><ul><li>Sorting </li></ul></ul></ul><ul><ul><ul><li>Result display </li></ul></ul></ul><ul><ul><li>Type:string/int32/uint32/geo/float/double/datetime </li></ul></ul><ul><ul><li>例子 </li></ul></ul><ul><ul><li><field name=“title” fullsort=“yes” </li></ul></ul><ul><ul><li>tokenize=“auto|delimiters” lemmatize=“yes”> </li></ul></ul><ul><ul><li><vectorize default=“10:0”> </li></ul></ul><ul><ul><li></field> </li></ul></ul><ul><ul><li><field name=“size”type=“int32”fullsort=“yes”/> </li></ul></ul>文档处理相关
  27. 27. <ul><li>Scope field </li></ul><ul><ul><li>对应结构化的 xml 文档。等级结构 . </li></ul></ul><ul><ul><li>Type:text </li></ul></ul><ul><ul><li>例子 </li></ul></ul><ul><ul><li>Input: </li></ul></ul><ul><ul><li><book> </li></ul></ul><ul><ul><li><chapter> </li></ul></ul><ul><ul><li><id type=“int32”>1</id> </li></ul></ul><ul><ul><li><heading>act 1</heading> </li></ul></ul><ul><ul><li><sentence>sen1</sentence> </li></ul></ul><ul><ul><li><sentence>sen2</sentence> </li></ul></ul><ul><ul><li></chapter> </li></ul></ul><ul><ul><li></book> </li></ul></ul><ul><ul><li>文档处理器 map 到 xml field : </li></ul></ul><ul><ul><li>xml: </li></ul></ul><ul><ul><li>book : (string) </li></ul></ul><ul><ul><li>chapter:(string) </li></ul></ul><ul><ul><li>id:1(type=int32) </li></ul></ul><ul><ul><li>heading:”act1”(string) </li></ul></ul><ul><ul><li>sentence:”sen1”(string) </li></ul></ul><ul><ul><li>sentence:”sen2”(string) </li></ul></ul>文档处理相关
  28. 28. 搜索处理系统 index 搜索 引擎 SFE Search Api Query and Result Server query 结果 Query& 参数 Query& 参数 HTTP client Text/xml 结果 Enhanced 结果 API client 结果处理 pipeline query 处理 pipeline
  29. 29. <ul><li>Field 的相关属性 </li></ul><ul><ul><li>Index </li></ul></ul><ul><ul><li>Max-index-size </li></ul></ul><ul><ul><li>Boundary-match </li></ul></ul><ul><ul><li>Separator </li></ul></ul><ul><ul><li>Wildcard : prefix|full </li></ul></ul><ul><ul><li>substring </li></ul></ul>Query 和结果处理相关 Prefix : fas* Full:fas*/*ash/f?st Substring=6 Query:summer D:midsummer
  30. 30. <ul><li>Composite Field </li></ul><ul><li><composite-field name=&quot;content&quot; default=&quot;yes&quot; query-tokenize=&quot;auto&quot; lemmas=&quot;yes&quot;> </li></ul><ul><li><field-ref name=&quot;title&quot; level=&quot;4&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;body&quot; level=&quot;1&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;description&quot; level=&quot;2&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;urlkeywords&quot; level=&quot;3&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;keywords&quot; level=&quot;3&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;anchortext&quot; type=&quot;external&quot; level=&quot;5&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li></composite-field> </li></ul>Query 和结果处理相关
  31. 31. <ul><li>Sort 属性 </li></ul><ul><ul><li>Sort : yes |no. 前 4 个字符 </li></ul></ul><ul><ul><li>Fullsort:yes| no |latent </li></ul></ul><ul><li>ranking </li></ul><ul><li>Result view </li></ul><ul><li>Result Filters-- 移除重复记录 </li></ul>Query 和结果处理相关
  32. 32. <ul><li>Composite Field </li></ul><ul><li><composite-field name=&quot;content&quot; default=&quot;yes&quot; query-tokenize=&quot;auto&quot; lemmas=&quot;yes&quot;> </li></ul><ul><li><field-ref name=&quot;title&quot; level=&quot;4&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;body&quot; level=&quot;1&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;description&quot; level=&quot;2&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;urlkeywords&quot; level=&quot;3&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;keywords&quot; level=&quot;3&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li><field-ref name=&quot;anchortext&quot; type=&quot;external&quot; level=&quot;5&quot; field-separation-length=&quot;256&quot;/> </li></ul><ul><li></composite-field> </li></ul><ul><li>Sort 和 ranking </li></ul><ul><li>Result view </li></ul><ul><li>Navigator </li></ul><ul><ul><li>String Navigator </li></ul></ul><ul><ul><li>Numeric Naviator </li></ul></ul>Query 和结果处理相关
  33. 33. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>Rank Profile </li></ul><ul><li>相关术语 </li></ul><ul><li>相关 算法 </li></ul>
  34. 34. Rank Profile <ul><li><rank-profile name=&quot;default&quot; rank-model=&quot;default&quot; default=&quot;no&quot; </li></ul><ul><li>stop-word-threshold=&quot;2E6&quot; </li></ul><ul><li>position-stop-word-threshold=&quot;2E7&quot;> </li></ul><ul><li><quality weight=&quot;500&quot; field-ref=&quot;uuseedocquality&quot; /> </li></ul><ul><li><authority weight=&quot;80&quot; field-ref=&quot;anchortext&quot;/> </li></ul><ul><li><freshness weight=&quot;0&quot; field-ref=&quot;uuseeupdatedate&quot; auto=&quot;yes&quot;/> </li></ul><ul><li><composite-rank composite-field-ref=&quot;content&quot;> </li></ul><ul><li><proximity weight=&quot;50&quot; /> </li></ul><ul><li><context weight=&quot;50&quot;> </li></ul><ul><li><field-weight field-ref=&quot;body&quot; value=&quot;5&quot;/> </li></ul><ul><li><field-weight field-ref=&quot;description&quot; value=&quot;30&quot;/> </li></ul><ul><li><field-weight field-ref=&quot;urlkeywords&quot; value=&quot;40&quot;/> </li></ul><ul><li><field-weight field-ref=&quot;keywords&quot; value=&quot;50&quot;/> </li></ul><ul><li><field-weight field-ref=&quot;title&quot; value=&quot;60&quot;/> </li></ul><ul><li></context> </li></ul><ul><li></composite-rank> </li></ul><ul><li></rank-profile> </li></ul>
  35. 35. 相关术语 ( Relevancy Terminology ) For muli-term queries:the shorter the distance between query terms in a document,the higher the document’s rank value Proximity Importance of matching a query in a given document field Context Importance of geographical distance between a document’s associated latitude/longitude and a target location specified in a query Geo Assigned importance of a document , independent of the query Quality Importance of a document determined by the links to it from other documents Authority Age of a document compared to the time when the query is issued Freshness 描述 术语
  36. 36. 相关术语 ( Relevancy Terminology ) 计算 context 和 proximity 时额外用到的统计数据。 The greater the number of query terms present in the same field of a matching document, the highter the document’s rank value Completeness The more frequent a query term occurs in the document(term frequency or TF)relative to the term’s frequency in the index(inverse document frequency or IDF),the higher the document’s rank value Frequency The earlier a query term occurs in a field,the highter the document’s rank value Position 描述 术语
  37. 37. 相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) R=query q 在 document d 中的 rank 值 S=document d 的静态 rank 值,与 query 无关 F=freshness of document d at time t D=dynamic rank
  38. 38. 相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) (boost_coefficient*w_quality/100)*static_rank_field(d) <ul><li>boost_coefficient </li></ul><ul><ul><li>默认为 2 </li></ul></ul><ul><li>w_quality </li></ul><ul><ul><li>quality 的权重 </li></ul></ul><ul><li>static_rank_field </li></ul><ul><ul><li>默认值 </li></ul></ul><ul><ul><li>索引文档时指定 </li></ul></ul><ul><ul><li>通过 SBC 修改 </li></ul></ul>
  39. 39. 相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) (w_freshness/100)*fn(time scale,document age) <ul><li>w_freshness </li></ul><ul><ul><li>freshness 的权重 </li></ul></ul><ul><li>Document age = current time – document time </li></ul><ul><ul><li>单位:分钟 </li></ul></ul>
  40. 40. 相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) <ul><li>单 term 的 query </li></ul>(Fn(FO)+fn(NO)+W_authority/100*fn(ExtNO)+single_boost*W_context/100*sum(W_fieldN/100)) /fn(num_matching_docs) <ul><li>Fn(FO)-- 基础是 query term 在文档中第一次出现的位置 </li></ul><ul><li>fn(NO)-- 基础是 query term 在文档中出现的次数 </li></ul><ul><li>W_authority—authority 的权重 </li></ul><ul><li>fn(ExtNO)— 在 authority 相关的 field 中出现的次数 </li></ul><ul><li>single_boost— 单 term 时的 boost 系数 </li></ul><ul><li>W_context---context 的权重 </li></ul><ul><li>W_fieldN---context 中 field 的权重 </li></ul><ul><li>fn(num_matching_docs)— 在单个搜索节点, term 在 document 中出现的总数 </li></ul>
  41. 41. 相关算法 ( Relevancy Formula ) R(d,q)=S(d)+F(d,T)+D(d,q) <ul><li>Multi_term 的 query </li></ul>D(d,q1)+D(d,q2)+…+W_context/100*fn(common context)+fn(operator)+W_proximity/100*fn(term proximity) <ul><li>fn(common context)— 在相同的 context 中有几个 term 被发现 </li></ul><ul><li>fn(operator)— 当 OR/ANY/NEAR/ONEAR 时使用 </li></ul><ul><li>W_proximity— proximity 的权重 </li></ul><ul><li>fn(term proximity ) </li></ul>
  42. 42. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>Fast ESP 的语言学特性 </li></ul><ul><li>CJK 语言 </li></ul>
  43. 43. Fast ESP 的语言学特性 <ul><li>自动探测 79 种语言 </li></ul><ul><li>高级特性支持 30 种语言,包括中文 </li></ul>分词 Tokenization 符号标准化。 Character normalization 移除停止词 Anti-phrasing 和 stopword 语音搜索 Phonetic search Email 、人名、地名等 Entity Extraction French Open , John Lervik Proper Name 或 phrase 识别 Car—automobile Synonyms go—goes—going—went—gone Lemmatization sarsh----search spellchecking
  44. 44. Fast ESP 的语言学特性 增加索引时间 增加内容处理时间 增加磁盘使用 好的用户体验 坏处 好处
  45. 45. Fast ESP 的语言学特性 不需要重新处理文档 需要重新处理文档 增加 QPS 省 query 时间 Proper name 和 phrase recognition 不影响 index 增加 index Anti-phrasing 、 stopword Entity extraction Spell checking Tokenization Synonym Synonym Lemmatization Lemmatization Query 时使用 内容处理时使用
  46. 46. CJK 语言 <ul><li>定义 </li></ul><ul><ul><li>CJK- 中文、日文、韩文 </li></ul></ul><ul><ul><li>英文使用空格或标点符号作为单词之间的分隔符; </li></ul></ul><ul><ul><li>中文、日文、韩文没有明显的分词标识 </li></ul></ul>
  47. 47. CJK 语言 <ul><li>Character normalization (符号标准化) </li></ul><ul><ul><li>全角到半角。-> Fast ESP 5.0 </li></ul></ul><ul><ul><li>半角到全角。-> カギ </li></ul></ul><ul><ul><li>汉语数字到阿拉伯数字。一万五千-> 15000 </li></ul></ul><ul><ul><li>異體字到正體字。羣-> 群 , 歎-> 嘆 </li></ul></ul><ul><ul><li>简体繁体互换。 中國對外經濟貿易⇄ 中国对外经济贸易 </li></ul></ul>軟體 软件 金山 詞霸 词霸 After character normalization 軟體 软件 金山 詞霸 After qt_synonym 軟體 金山 詞霸 Original Query Query keywords Stage
  48. 48. CJK 语言 <ul><li>中文分词规则 </li></ul><ul><ul><li>人名:姓和名的第一个字被分割为一个词。 </li></ul></ul><ul><ul><li>文档:李小龙 </li></ul></ul><ul><ul><li>query :李小 结果:李小龙 </li></ul></ul><ul><ul><li>小龙 结果: misss </li></ul></ul><ul><ul><li>助词被作为分隔符处理。比如:的 , 们 , 地 , 了 , 过 </li></ul></ul><ul><ul><li>文档:老師的 , 同学们 , 簡略地 , 生產了 取消過 . </li></ul></ul><ul><ul><li>query :同学 结果:同学们 </li></ul></ul><ul><ul><li>补语被作为分隔符处理。比如:表達出來 , 使用下去 , 確認得了 , 漂亮極 </li></ul></ul><ul><ul><li>这些语法上特性都是默认支持的。的不需要 lemmatization stage 支持。 </li></ul></ul>
  49. 49. CJK 语言 中华人民共和国 1.substring=1 中 华 人 民 共 和 国 2.substring=2 中华 华人 人民 民共 共和 和国 <ul><li>Substring </li></ul>
  50. 50. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>定义 </li></ul><ul><li>多节点体系 </li></ul><ul><li>Index Partitions 机制 </li></ul>
  51. 51. <ul><li>Fault Tolerance </li></ul><ul><ul><li>在软件或硬件故障时,提供服务的能力 </li></ul></ul><ul><ul><li>几种模式 </li></ul></ul><ul><ul><ul><li>Fail safe </li></ul></ul></ul><ul><ul><ul><li>Fail soft </li></ul></ul></ul><ul><ul><ul><li>Fail stop </li></ul></ul></ul>定义
  52. 52. <ul><li>factor </li></ul><ul><ul><li>Content volumn </li></ul></ul><ul><ul><ul><li>系统可以处理的内容数量 </li></ul></ul></ul><ul><ul><li>Query rate </li></ul></ul><ul><ul><ul><li>QPS- 系统每秒必须处理的请求数 </li></ul></ul></ul><ul><ul><li>Content dynamics </li></ul></ul><ul><ul><ul><li>每天新增文档数、删除文档数 </li></ul></ul></ul><ul><ul><li>Search latency </li></ul></ul><ul><ul><ul><li>提交 query 到 QR 服务器到结果返回的时间 </li></ul></ul></ul><ul><ul><li>Index latency </li></ul></ul><ul><ul><ul><li>文档提交到可以搜索的时间 </li></ul></ul></ul>定义
  53. 53. 多节点体系 获取内容 文档处理子系统 索引子系统 搜索子系统 查询与结果处理 子系统 搜索用户 Admin 组件
  54. 54. 多节点体系 - 文档处理子系统 文档处理器 文档处理器 内容分发 文档处理器 文档处理器 内容分发 <ul><li>多个组件可以增加可靠性、提供文档处理能力 </li></ul><ul><li>一个内容组件同时只能连接到一个内容分发器 </li></ul><ul><li>每个文档处理器同时仅和一个内容分发器通信 </li></ul><ul><li>如果内容分发其 down ,动态重新配置 </li></ul>
  55. 55. 多节点体系 - 索引子系统 indexer indexer 内容分发 indexer 索引分发 <ul><li>索引发发 </li></ul><ul><li>将文档分发到不同的 column </li></ul><ul><li>多个可以增加可靠性、提高处理能力 </li></ul><ul><li>Indexer- 矩阵形式 </li></ul><ul><li>多 column 增加文档数量和提高索引的性能 </li></ul><ul><li>多 row 提供可靠性 </li></ul>indexer
  56. 56. 多节点体系 - 索引子系统 Indexer ( master ) Indexer ( master ) 内容分发 Indexer ( backup ) 索引分发 <ul><li>Master indexer </li></ul><ul><li>一 column 仅有一个 master indexer </li></ul><ul><li>Search 仅和 master indexer 通信 </li></ul><ul><li>Backup indexer </li></ul><ul><li>仅存储 fixml 和 indexing 操作 </li></ul><ul><li>Failover 请求索引的建立( fail soft ) </li></ul>Indexer ( backup )
  57. 57. 多节点体系 - 索引子系统 Indexer ( master ) 内容分发 索引分发 <ul><li>索引分发器提交文档操作到列的 master indexer </li></ul><ul><li>如果超过 indexers 失败的数操作不会执行。这个数是可配置的 </li></ul><ul><li>Master </li></ul><ul><li>安排索引 </li></ul><ul><li>仅当所有 row 报告 ready 时激活新的 index </li></ul>Indexer ( backup ) Indexer ( backup )
  58. 58. 多节点体系 - 搜索和 QR 子系统 search R0C0 Top-level 分发 ( QR ) <ul><li>矩阵 </li></ul><ul><ul><li>Row— 可靠性和 query 性能 </li></ul></ul><ul><ul><li>Column— 文档数量。和 index 的 column 数量一样 </li></ul></ul><ul><li>Top-level 分发器 </li></ul><ul><ul><li>在 row 间负载平衡 </li></ul></ul><ul><ul><li>发送 query 到某一行的每一列、合并结果 </li></ul></ul>search R1C0 search R0C2 search R0C1 search R1C2 search R1C1
  59. 59. 多节点体系 - 搜索和 QR 子系统 search R0C0 Top-level 分发 ( QR ) <ul><li>多 QR </li></ul><ul><ul><li>可靠性和负载均衡 </li></ul></ul>search R1C0 search R0C2 search R0C1 search R1C2 search R1C1 搜索用户 负载均衡
  60. 60. 多节点体系 -index 部署 <ul><li>Indexer 和 search 在同一节点 </li></ul><ul><li>Indexer 和 search 在不同节点 </li></ul>indexer Master indexer backup search search search indexer indexer indexer search search search
  61. 61. 多节点体系 -admin 子系统 <ul><li>Name service 和 License Manager 可以 fault tolerant 。 存在单点故障 </li></ul><ul><li>其他组件不支持 fault tolerant </li></ul>CORBA Name Service License Manager Resource Service Log Transformer Log Server Config server Cache Manager Admin Server Relbench Storage service Web server
  62. 62. Index Partitions 机制 <ul><li>每个 indexer 或 search 节点使用多个 indexing 的 partitions </li></ul><ul><ul><li>每个 partition 容纳了索引的文档 </li></ul></ul><ul><ul><li>Partitions are mirrored to permit incremental indexing and continuous search </li></ul></ul><ul><ul><li>Content 被 index 进入最小的 partition </li></ul></ul><ul><ul><li>Content 被合并到比较高的 partition 根据触发条件 </li></ul></ul>0 1 2 docsDistributionPst : 100 , 100 , 100 触发条件: 10000 , 1000000 2 : 6
  63. 63. Index Partitions 优化 <ul><li>尽可能保持最小的 Partition 是空的 </li></ul><ul><ul><li>索引新内容意味着重新索引最小 Partition </li></ul></ul><ul><ul><li>为最小 Partition 设置比较低的触发条件,最小 Partition 将要快速移动索引到比较高的 Partition </li></ul></ul><ul><ul><li>但是:移动内容到比较高的 Partition 意味着比较高的 Partition 会重建索引 </li></ul></ul><ul><li>在 RAM disk 上建立最小的 Partition </li></ul>0 1 2
  64. 64. Index blacklisting <ul><li>Blacklisting 被用来提高移除文档的速度 </li></ul><ul><ul><li>Blacklisting index 仅仅包含被删除文档的 id </li></ul></ul><ul><ul><li>Search :自动调整为 term and not in blacklisting </li></ul></ul>
  65. 65. Index blacklisting <ul><li>例子 </li></ul><ul><ul><li>Document A ( A-1 )已经被索引。位于 partition2 </li></ul></ul><ul><ul><li>Document A ( A-2 )修改后重新被提交。 </li></ul></ul><ul><ul><li>新版本位于 partition0 ,这时在索引中同时又 2 个 Document A </li></ul></ul><ul><ul><li>在 blacklist index 重建之前,搜索结果中将同时包含 2 个 Document A </li></ul></ul><ul><ul><li>blacklist index 重建后,搜索结果中将没有 Document A ( A-1 ),但是索引中仍然有 </li></ul></ul><ul><ul><li>当 Document A ( A-2 )移动到 partition2 , partition2 重建索引, Document A ( A-1 )从索引中被移除。 </li></ul></ul><ul><ul><li>但是在 FiXML 中仍然有 2 个版本的 Document A 。 </li></ul></ul>0 1 2 DocumentA-2 DocumentA-1
  66. 66. <ul><li>系统概述 </li></ul><ul><li>获取内容 </li></ul><ul><li>文档处理 </li></ul><ul><li>Index Profile </li></ul><ul><li>排名机制 </li></ul><ul><li>语言学特性 </li></ul><ul><li>多节点体系 </li></ul><ul><li>我们的 fast esp </li></ul>讨论内容 <ul><li>部署结构 </li></ul><ul><li>数据源 </li></ul><ul><li>索引字段 </li></ul>
  67. 67. 部署结构 RI RS Ind RS RI RI RS RS RS RS QR Ind CP DP admin QR RT RT search10 search9 search5 search4 search3 search2 search1
  68. 68. 部署结构 Ind DP QR QR RS RS RS RS RS RS RI RI RI Ind CP DP
  69. 69. <ul><li>Youku--------(2000 万 ) </li></ul><ul><li>Tudou--------(1400 万 ) </li></ul><ul><li>ku6 --------(3000 万 ) </li></ul><ul><li>sina --------(500 万 ) </li></ul><ul><li>sohu --------(200 万 ) </li></ul><ul><li>cctv --------( 几十万 ) </li></ul><ul><li>56 --------(400 万 ) </li></ul>数据源
  70. 70. 索引字段 UGC- 现有字段: 建立专辑时使用 vuploadusername 视频上传用户 uuseeupdate 刷新时间 可以根据该字段导航 vsourcesite 来源网站 可以根据该字段导航 vtags 标签 可排序 vlength 视频长度 vplayurl 视频播放页面地址 可以根据该字段导航 vcategorys 类别 vlogo 视频图片 可排序 vtitle 视频标题 vevid 原始编码 ID vvid 原始 ID vid 唯一标识 备注 索引字段 名称
  71. 71. 索引字段 UGC- 准备扩充字段: 建立专辑 vuploaduserid 视频上传用户 ID 计算权重。可排序 vlink 引用次数 计算权重。可排序 vcomment 评论次数 计算权重。可排序 vpageview 观看次数 计算权重。可排序 Vfav 收藏次数 可以根据该字段导航 vchannel 频道 备注 索引字段 名称
  72. 72. 索引字段 专辑 - 现有字段: plvideocount 视频数 可以根据该字段导航 plchannel 频道 Vod 还是 ugc pltype 类别 plvideotitles 视频标题 plvideoinfo 视频信息 可以根据该字段导航 plsourcesite 来源网站 可以根据该字段导航 pltags 标签 可排序 pllength 总长度 VOD 时为文件 GUID plplayurl 第 1 个视频播放地址 可以根据该字段导航 plcategorys 类型 pllogo 图片 可排序 pltitle 标题 plbaikeid 百科 ID plid 唯一标识 备注 索引字段 名称
  73. 73. FAST ESP 搜索系统 技术中心 2009 年 9 月

×