搜索相关技术

1、爬虫

爬虫系统的设计要求:
主流的搜索引擎爬虫能力超过30亿/每天
对外界新数据有分钟级的感知能力
对优质内容的覆盖率

2、遍历抓取

遍历策略包括
广度优先遍历(队列实现)
深度优先遍历(栈实现)
带偏好的优先遍历(链接选取,pagerank,HITS等)

3、数据存储

海量存储+高吞吐
hadoop,hbase,spark,kafka,vlink

4、网页分析

资源关系:包括重复性,权威度,pc-wise映射
资源相关性特征:网页标题,正文,时间,类型,链接位置等

网页分析过程:结构化、资源理解、资源关系

结构化:将原始网页解析成结构化数据,参考网页解析树
资源理解:解析原始网页中的特征数据,多维度描述网页文本特征,难点在于文本来源,粒度不同,有效性参差不齐
资源关系:通过超链分析算法,pagerank,HITS等计算网页的分级信息,用于筛选优质、权威的网页,确保呈现结果高质量,比如在资源理解状态中增加一个pagerank值维度

5、检索

有了数据并进行分析特征化标注之后,接下来就要思考怎么进行检索了,常用的有倒排索引,位置信息索引,双词索引等
索引构建:
用户搜索词——NLP处理提取核心特征——根据特征-网页的映射关系进行检索,返回搜索结果
索引更新策略:
交替更新:两套索引文件,一套更新一套提供服务,交替进行用于周期性更新场景
分层更新:大索引拥有较长更新周期,小索引数据量少短周期更新
检索方式:
多字段索引:对标题、正文、摘要等维度构建索引,搜索时对多个索引进行检索,每个索引返回结果再聚合,得到最终结果
检索的两个阶段:
粗排阶段:从所有索引文件筛选出相关结果。排序时以相关性为主,不做横向对比排序,注重性能,折中策略高位截断
精排阶段:从粗排阶段的相关结果中找出最终要展现的少部分结果。在粗排基础上进行多维度、横向对比排序,加入pagerank、用户点击等因素
搜索引擎缓存:
类似操作系统的分页缓存,比如最近最少使用淘汰策略
搜索引擎常用性价比淘汰策略,通过比较收益与内存占用大小来组合各种混合策略

6、文本与查询词之间的相关性

布尔模型、向量空间模型、BM25模型、LTR等

7、NLP技术

对于搜索词的处理,包括 文本分析,纠错,改写,意图识别等

你可能感兴趣的:(搜索相关技术)