搜索技术相关的技术框架(部分)

1 特定站点搜索和通用搜索的对比

搜索用户天生的“懒惰”、表达含糊以及对搜索结果智能的期待从未改变过。
用户对于全网通用搜索和站内搜索的期望差别仅在于搜索范围从全网变为特定站点。
而由于用户对他所喜爱的站点的了解、熟悉程度远远超出其对全网的了解,所以用户对搜索服务所存在的各种问题更为敏感,从而有更高的要求。

1.1 搜索引擎和全文检索的区别

搜索引擎的门槛主要是技术门槛,包括网页数据的快速采集、海量数据的索引和存储、搜索结果的相关性排序、搜索效率的毫秒级要求、分布式处理和负载均衡、自然语言的理解技术。
1、数据量
传统全文检索系统面向的是企业本身的数据或者和企业相关的数据,一般索引库规模多在GB级,数据量大的也只有几百万条;但互联网网页搜索需要处理几十亿的网页,搜索引擎的策略都是采用服务器群集和分布式计算技术。
2、内容相关性
信息太多,查准和排序就特别重要,Google等搜索引擎采用网页链接分析技术,根据互联网上网页被链接次数作为重要性评判的依据;但全文检索的数据源中相互链接的程度并不高,不能作为判别重要性的依据,只能基于内容的相关性排序。
3、安全性
互联网搜索引擎的数据来源都是互联网上公开的信息,而且除了文本正文以外,其它信息都不太重要;但企业全文检索的数据源都是企业内部的信息,有等级、权限等限制,对查询方式也有更严格的要求,因此其数据一般会安全和集中地存放在数据仓库中以保证数据安全和管理的要求。
4、个性化和智能化
搜索引擎面向的是互联网访问者,由于其数据量和客户数量的限制,自然语言处理技术、知识检索、知识挖掘等计算密集的智能计算技术很难应用,这也是目前搜索引擎技术努力的方向;而全文检索数据量小,检索需求明确,客户量少,在智能化和个性可走得更远。

2 通用搜索背后的技术

2.1 NLP:分词、查询纠错、查询理解

分词:将文本切成多个独立的语义单元以作为检索的最小单元,然后分词后的词串建立倒排索引以加快检索服务的速度。
最经典的分词方法有基于词典的前向/后向最大匹配或基于语言模型的分词等等,其中如何构建准确而全的词典,用什么语料统计适用的语言模型都是算法成功的关键所在。
通用搜索通过挖掘网络预料(比如百科词条)或用户行为数据解决分词的问题。
查询纠错:一般的做法是对其中每个字提供一些候选字,候选字是通过同音、近音、形似等方式筛选出来的,比如“迎亲“的候选集就是(引擎,影音,隐情,应勤,…),然后转换成HMM求解过程。
查询理解:狭义的概括查询改写、词间紧密度、词权重等。比如“101大厦”合在一起,分开,或者改写成101大楼等对于搜索是有不同效果的。
查询改写、紧密度同样依赖于网络资源的挖掘以及历史用户行为的挖掘,例如用户在同一个session内的主动改写、用户查询后的点击、具有相似点击结果的多个query等等…每种数据的合理应用,都能让搜索效果有所提升。
通用搜索正是利用其数千亿网页索引库以及每日数亿次的用户查询及后续行为,在大数据上逐渐积累对查询理解的智慧。这些恐怕任何一个站点都无法触及的。

2.2 相关性计算

一个查询和一篇文档,计算两者是否语义相关。需要从多个维度去阐述查询与文档之间的关系。技术发展历程:早期统计词频(TFIDF、BM25、到语言模型、proximity)到深度学习的词嵌入、语义表示、语义匹配。

2.3 排序

按照满足用户需求的程度从高到低排序,以便最满足用户需求的结果能够排在搜索结果列表的最前面,让用户能够最先浏览到。 排序主要涉及两大问题:用户排序的多维特征以及多维特征的融合以决定最终的顺序。

2.4 搜索架构

服务负载的压力、用户响应时间的限制、分给每次用户查询的计算资源和时间是有限的。底层的检索性能越好,所能查找的候选文档越多,所留给排序优化的时间越多,越能使用更丰富的特征和更复杂的算法,达到更好的排序效果。性能越高, 效果提升空间越大。
架构优化的点:1)最基本的倒排索引 2)对历史数据的批量倒排 3)针对新数据或更新数据的实时倒排的设计 4)针对标题、正文等重要度不同字段的处理、倒排的压缩,快速交并算法 5)灵活的多机分环架构

3 百度实时搜索技术的架构(Tera)

在这里插入图片描述

3.1 内容抓取

由分布式爬虫系统实时抓取网络上的优质内容,抓取的范围包含互联网、APP及各种自媒体平台,并通过分布式索引构建系统,将抓取到的内容形成索引;其实抓取主要分两大部分:第一,最基本的网页抓取,页面的解析,需要浏览器内核技术做动态渲染,把页面结果抓过来,第二,还有链接的抓取,最终的结果会存储两个库里,很多计算都是围绕着这两个库进行的。一些批量挖掘计算和离线分析计算,最终计算出来的结果仍然会回到这两个数据库里。

3.2 索引构建

在得到页面信息后,需要进行索引筛选。索引筛选其实就是通过分析页面的特征和价值,提取出需要构建索引的网页集合并计算出每个网页的优先级和时效长度,之后进行正排和倒排计算得到索引结果;

3.3 检索系统

因为实际的检索系统逻辑非常复杂,故此处仅讨论主要的架构层级。核心的中枢(排序)服务需要调用底层索引服务,根据用户输入的需求做召回,经过分析和权重 PK,最终将索引信息返回,通过展现服务友好的将结果呈现给用户,包括标题、摘要、缩略图、视频等形式;

4 微信搜一搜的排序逻辑

帐号权威、内容优质、用户行为是影响搜索结果排序的核心因素:
帐号权威,即能够保持正常运营,不触犯微信公众品牌规范,没有违规行为,持续在专业的领域进行创作;内容优质,即标题合格,坚持原创内容,并且发布的内容具有极强的影响;用户行为,即通过尝试引入社交的影响,判断账号和内容的权威度。
微信搜一搜系统有沙盒机制:新帐号新内容会进入沙盒观察期,期间用户通过帐号昵称、ID可以搜到该帐号,但不支持模糊搜索,该帐号发布的内容也无法出现在搜索结果中。其次,具备恶意SEO、色情低俗、发布虚假内容三大典型行为特征的帐号,会被自动识别过滤,封禁搜索能力。
热点搜索内容是根据微信内所有的热点传播进行分析汇总,只会统计公开信息,比如文章阅读用户的搜索等,群聊等私密信息是不会纳入分析范围的。

5 总结

总结起来待优化的点:索引构建,query理解,结果排序。

6 学习来源

搜索引擎技术之概要预览
曾经的知乎搜索为什么这么"烂"?来看看搜索技术有多复杂
郑然:百度实时搜索技术的架构演变
微信搜一搜首次揭秘排序逻辑,2020将进一步开放
回顾·神马搜索技术演进之路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值