如何设计一个高效的搜索引擎?百度怎么做?
优采云 发布时间: 2021-08-26 20:01如何设计一个高效的搜索引擎?百度怎么做?
查询处理和分词技术
随着搜索经济的兴起,人们开始越来越关注全球各大搜索引擎的性能、技术和日常流量。作为企业,您会根据搜索引擎的流行度和日常流量来选择是否投放广告;作为普通网民,您会根据搜索引擎的性能和技术,选择自己喜欢的引擎查找信息;作为技术人员,您会考虑将具有代表性的搜索引擎作为研究对象。搜索引擎经济的兴起,再次向人们证明了互联网中隐藏的巨大商机。当互联网离开搜索时,只剩下空荡荡的数据,还有大量的金矿等待辛勤的挖掘。
但是,如何设计一个高效的搜索引擎?我们可以用百度采用的技术手段来讨论如何设计一个实用的搜索引擎。搜索引擎涉及到很多技术点,比如查询处理、排序算法、页面爬取算法、CACHE机制、ANTI-SPAM等。这些技术细节不会作为百度、GOOGLE等商业公司的搜索引擎服务商向公众披露。我们可以将现有的搜索引擎视为一个黑箱,通过向黑箱提交输入,根据黑箱返回的输出粗略判断黑箱中未知的技术细节。
查询处理和分词是中文搜索引擎必不可少的任务,而百度作为典型的中文搜索引擎,一直强调其“中文处理”具有其他搜索引擎所不具备的关键技术和优势。那么我们来看看百度采用了哪些所谓的核心技术。
我们会分两部分来讨论:查询处理/中文分词。
一、查询处理
用户向搜索引擎提交查询。搜索引擎一般在收到用户查询后做一些处理,然后从索引数据库中提取相关信息。那么百度在收到用户查询后做了什么?
1、 假设用户提交了多个查询字符串,例如“信息检索理论工具”。那么搜索引擎做的第一件事就是根据空格、标点等分隔符将查询字符串分成若干个子查询字符串。例如,上面的查询将被解析为:三个子字符串;这个简单,我们继续往下看。
2、 假设提交的查询收录重复内容,搜索引擎如何处理?比如查询“理论工具理论”时,百度把重复的字符串当作只出现过一次,也就是等价的“理论工具”,GOOGLE显然没有合并,而是增加了重复查询子串的权重用于处理。那么我们是如何得出这个结论的呢?我们可以把“理论工具”提交给百度,返回34.1万个文档,大致看一下第一页返回的内容。
好的。继续,我们提交GOOGLE查询“理论工具理论”,查看返回结果,返回的文档还是这么多。当然,这并不能解释太多。然后看第一页返回结果的顺序,你看出来了吗?顺序完全没变,而GOOGLE的顺序稍微变了一点,说明百度把重复的查询合并为一个进程,基本忽略了字符串之间出现的顺序(GOOGLE考虑了这个顺序关系)。
3、 假设提交的中文查询收录英文单词,搜索引擎如何处理?比如查询“电影BT下载”的时候,百度的方法是把中文串中的英文作为一个整体,用这个Cut the Chinese做断点,这样上面的查询就切到中间的英文是否是可以在字典中找到的单词或随机字符,将被视为一个整体。至于为什么,可以使用查询“电影dfdfdf下载”来查看结果。当然,如果查询收录数字,同样适用。