回顾过去,展望未来,未来成了搜索◣引擎的天下,个人、企业都疯狂的●关注着搜索引□□□擎的变化。作为企业,会根据搜索引◥擎的知名度以☆及日流量来选□□□择是否要投放□□广告等;作为普通网民,会根据搜索引□□□□擎的性能和技□□□□术来选择自己□□□喜欢的引擎查□□□找资料;作为技术人员,会把有代表性□□的搜索引擎作□□为研究对象……一时成了搜索□□□经济时代。搜索成了网络□□□□的重中之重。对从事网络的□□朋友来说,了解一个好的□□□□搜索引擎,知道它的优势□□□□所在,掌握它的规律丨是很有必要的。
如何设计一个□□高效的搜索引□□□擎?我们可以以百□□度所采取的技□□术手段来探讨□□如何设计一个□□□实用的搜索引□□擎。搜索引擎涉及□□到许多技术点,比如查询处理,排序算法,页面抓取算法,CACHE机制,ANTI-SPAM等等。这些技术细节,作为商业公司□□□的搜索引擎服□□□务提供商比如◣百度,GOOGLE等是不会公之□□□于众的。我们可以将现□□有的搜索引擎▲看作一个黑盒,通过向黑盒提□□□交输入,判断黑盒返回丨的输出大致判◣断黑盒里面不□□□为人知的技术☆细节。
查询处理与分◤词是一个中文□□搜索引擎必不□□可少的工作,而百度作为一□□□个典型的中文□□□□搜索引擎一直□□□强调其“中文处理”方面具有其它□□□搜索引擎所不□□□□具有的关键技□□□□术和优势。那么我们就来□□□□看看百度到底□□采用了哪些所□□□谓的核心技术。我们分两个部□□□□分来讲述:查询处理和中□□□文分词。
先来谈系列一:查询处理
用户向搜索引□□擎提交查询,搜索引擎一般□□在接受到用户□□□查询后要做一□□些处理,然后在索引数□□据库里面提取□□□□相关的信息。那么百度在接◣受到用户查询□□□后做了些什么□□□工作呢?
1、假设用户提交□□□□了不只一个查□□□询串,比如“信息检索理论□□□工具”。
那么搜索引擎□□□□一开始做的是□□根据分隔符比□□□如空格,标点符号,将查询串分割□□成若干子查询✦串,比如上面的查※询就会被解析□□□为:<信息检索,理论,工具>三个子字符串;这个道理简单,我们接着往下·看。
2、假设提交的查□□□询有重复的内★容,搜索引擎怎么□□□□处理呢?比如查询“理论 工具理论”,百度是将重复丨的字符串当作□□只出现过一次,也就是处理成□□□等价的“理论工具”,而GOOGLE显然是没有进□□□□行归并,而是将重复查●询子串的权重□□□增大进行处理。那么是如何得□□□出这个结论的□□□□呢?我们可以将“理论工具”提交给百度,再返回文档,大致看看先进□□页的返回内容。接着继续,我们提交查询“理论 工具理论”,在看看返回结□□果,仍然是那么多□□□返回文档,当然这个不能□□说明太多问题,那看看先进页□□□返回结果的排□□□序,看出来了吗?顺序完全没有□□□变化,而 GOOGLE 则排序有些变□□□□动,这说明百度是●将重复的查询□□□□归并成一个处□□□理的,而且字符串之□□间的先后出现□□顺序基本不予★考虑(GOOGLE是考虑了这个□□□□顺序关系的)。
3、假设提交的中▼文查询包含英□□□□文单词,搜索引擎是怎□□□□么处理的?比如查询”电影”,百度的方法是▲将中文字符串□□□中的英文当作□□□一个整体保留,并以此为断点□□□□将中文切分开,这样上述的查□□询就切为<电影,BT,下载>,不论中间的英□□文是否一个字□□典里能查到的□□□□单词也好,还是随机的字●符也好,都会当作一个□□整体来对待。至于为什么,你用查询“电影dfdfdf下载”看看结果就知◆道了。当然如果查询▽中包含数字,也是如此办理。
到目前为止,看似都很简单,也很清楚,百度怎么处理◤用户查询的呢?归纳如下:一开始根据分□□□割符号将查询□□□□分开,然后看看是否□□□□有重复的字符□□串,如果有,就抛弃多余的,只保留一个,接着判断是否□□有英文或者数□□□字,如果有的话,把英文或者数□□字当作一个整◇体保留并把前□□后的中文切开。
暂时先谈到这□□里,接下来我们会□□谈及中文分词□□□技术,请继续关注我□□□们先进页
扫一扫
关注k8凯发一触即发
全国咨询热线
135-9299-6491