登陆注册
19122000000008

第8章 搜索引擎原理和相关技术(2)

启发式搜索就是完美的吗?真遗憾,这只是概念,概念无所谓完美与不完美。启发式搜索能否加快搜索进程,关键在于是如何受到启发及受到启发之后是如何决定的。再举一例,一个盲人拄着拐棍下山,每走一步之前,都要用拐棍探测周围,寻找到最低点作为下一步的目的地。

这样,他认为自己每一步都在向下走,自然可以走到山下。但是,如果他走进了山谷怎么办呢?

在走进山谷之前,每一步都是向下走,但走进山谷之后,周围的地势都是高的,他就没有办法再走了。站在盲人的角度来看,事实就是这样。

世上没有必然的制胜之路,也没有绝对的失败。在通往成功的路上,人们不断地优化着算法,以为离成功越来越近了。也许真的是这样,也许正在远离成功的路上飞驰。

用“数学家”的预言来描述搜索,就是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的节点的过程。至于如何从根节点找到目标叶节点,有许多数学算法。读者可以参考“人工神经网络”方面书籍去学习。

3.网站与网络蜘蛛的交流

回到网络蜘蛛的话题,网络蜘蛛在访问网站网页的时候,经常会遇到加密数据和网页权限的问题,有些网页需要会员权限才能访问。当然,网站的所有者可以通过协议让网络蜘蛛不去抓取,但对于一些出售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费地让搜索者查看,这样就需要给网络蜘蛛提供相应的用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进行网页抓取,从而提供搜索。而当搜索者单击查看该网页的时候,同样需要搜索者提供相应的权限验证。

网络蜘蛛需要抓取网页,不同于一般的访问,如果控制不好,则会引起网站服务器负担过重。淘宝网就曾因为雅虎搜索引擎的网络蜘蛛抓取其数据引起服务器的不稳定。网站是否无法和网络蜘蛛交流呢?其实不然,有多种方法可以让网站和网络蜘蛛进行交流。一方面让网站管理员了解网络蜘蛛都来自哪儿,做了些什么,另一方面也告诉网络蜘蛛哪些网页不应该抓取,哪些网页应该更新。

每个网络蜘蛛都有自己的名字,在抓取网页的时候,都会向网站标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个字段为User-agent,用于标识此网络蜘蛛的身份。例如,Google网络蜘蛛的标识为Google Bot,Baidu网络蜘蛛的标识为BaiDuSpider,Yahoo网络蜘蛛的标识为Inktomi Slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的网络蜘蛛来过,什么时候过来的,以及读了多少数据,等等。如果网站管理员发现某个蜘蛛有问题,就可以通过其标识来和蜘蛛所有者联系。

网络蜘蛛进入一个网站,一般(注意,是一般。如果要攻击一个网站的话,就可以不遵守约定)会访问一个特殊的文本文件robots.txt,这个文件一般放在网站服务器的根目录下,网站管理员可以通过robots.txt来定义哪些目录网络蜘蛛不能访问,或者哪些目录对于某些特定的网络蜘蛛不能访问。例如,有些网站的可执行文件目录和临时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为拒绝访问目录。

当然,robots.txt只是一个协议,如果网络蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网络蜘蛛对于某些页面的访问,但一般的网络蜘蛛都会遵循这些协议,而且网站管理员还可以通过其他方式来拒绝网络蜘蛛对某些网页的抓取。

网络蜘蛛在下载网页的时候,会去识别网页的HTML代码,在其代码的部分,会有META标识。通过这些标识,可以告诉网络蜘蛛本网页是否需要被抓取,还可以告诉网络蜘蛛本网页中的链接是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的链接需要被跟踪。

现在一般的网站都希望搜索引擎能更全面地抓取自己网站的网页,因为这样可以让更多的访问者能通过搜索引擎找到此网站。为了让本网站的网页更全面被抓取到,网站管理员可以建立一个网站地图,即Site Map。许多网络蜘蛛会把sitemap.htm文件作为一个网站网页抓取的入口,网站管理员可以把网站内部所有网页的链接放在这个文件里面,那么网络蜘蛛可以很方便地把整个网站抓取下来,避免遗漏某些网页,也会减小对网站服务器的负担。

对于多媒体、图片等文件,一般是通过链接的锚文本(即,链接文本)和相关的文件注释来判断这些文件的内容。例如,有一个链接文字为“蔡依林”,其链接指向一张jpeg格式的图片,那么网络蜘蛛就知道这张图片的内容是“蔡依林”。这样,在搜索“蔡依林”的时候都能让搜索引擎找到这张图片。另外,许多多媒体文件中有文件属性,考虑这些属性也可以更好地了解文件的内容。在SEO方面的书里,有专门讲这些小技巧的知识。

动态网页一直是网络蜘蛛面临的难题。所谓动态网页,是相对于静态网页而言,是由程序自动生成的页面,如:user.aspx?id=yutianen。动态网页可以快速统一更改网页风格,也可以减少网页所占服务器的空间,但这样给网络蜘蛛的抓取带来一些麻烦。网络蜘蛛更难处理的是一些脚本语言(如VBScript和JavaScript)生成的网页,如果要完善地处理好这些网页,网络蜘蛛就需要有自己的脚本解释程序。此外,许多网站把数据存储在数据库中,要通过该网站的数据库搜索才能获得信息,这给网络蜘蛛的抓取带来很大的困难。对于这类网站,如果网站设计者希望这些数据能被搜索引擎搜索,则需要提供一种可以遍历整个数据库内容的方法。

2.3.3建立索引

将数据搜集下来之后,存储在本机服务器上,留下副本,即可作为快照。

在建立索引之前,有一个问题需要说明,那就是数据的格式。

搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,抓取下来的网页包括各种格式,包括HTML、图片、DOC、PDF、视频等。这些文件抓取下来后,需要把其中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其他链接有一定影响。

对于DOC、PDF等文档,这种由专业厂商提供的软件生成的文档,厂商都会提供相应的文本提取接口。网络蜘蛛只需要调用这些插件的接口,就可以轻松提取文档中的文本信息和其他相关的信息。

HTML等文档则不一样,HTML有一套自己的语法,通过不同的命令标识符来表示不同的字体、颜色、位置等,提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符有一定的规则,只要按照不同的标识符取得相应的信息即可。但在识别这些信息的时候,需要同步记录许多版式信息,例如,文字的字体大小、是否是标题、是否是加粗显示、是否是页面的关键词等,这些信息有助于计算单词在网页中的重要程度。

同时,对于HTML网页来说,除了标题和正文以外,会有许多广告链接及公共的频道链接,这些链接和文本正文一点关系也没有,在提取网页内容的时候,也需要过滤这些无用的链接。例如,某个网站有“产品介绍”频道,因为导航条在网站内每个网页都有,若不过滤导航条链接,在搜索“产品介绍”的时候,则网站内每个网页都会搜索到,无疑会带来大量垃圾信息。

过滤这些无效链接需要统计大量的网页结构规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的网站,还需要个别处理。这就需要网络蜘蛛的设计有一定的扩展性。

本书会详细地讲解如何进行不同格式文件的解析,但对于网络蜘蛛的设计和开发,为避免把书写厚,就不讲了。感兴趣的读者可以用E-mail与笔者交流。

使用网络蜘蛛采集了数据,并且解析出了不同格式数据中的文本内容后,下面就可以建立索引了。全文搜索引擎所用的索引和普通索引是不同的。

全文搜索引擎采用的是倒排索引方法,为何称为倒排索引呢?

现在有一些文稿,把它们合成一本书,按照文章名称去查看文章内容,就是“正”索引,也是通常见到的索引。在这种索引中,有一个目录,列着文章的名称和对应的页码,读者首先要确定所要文章,然后根据对应的页码去查看文章内容。

那么,如果想要找到所有含有“中国”的文章,则需要一页一页地翻查,查看每一篇文章是否含有“中国”字样。当文章的数量极大的时候,这种做法的效率极低。

与之相对,按照内容去查文章,就是“倒”索引。同样是一些文章,把它们按照所含的词语进行分类。

常规索引的目的在于针对文章进行管理,它不是用来进行全文检索的。使用倒排索引才能做到根据关键词快速定位文章,比如,在上面的例子中,想要查找含有“中国”的文章,可以直接在索引中找到,这个速度是非常快的,尤其在文章数量非常大的情况下。

对于网络搜索引擎,数据来源于网络,数据源随时都可能被更新,如果索引不更新的话,就可能导致检索出来的结果的源已经不存在了。比如,在搜索引擎中搜索“爱情”,找到了一个网页,然后跟踪链接,进入那个网页,却发现那个网页已经被删除了。这就是索引更新不及时导致的。

针对这个问题,搜索引擎会定期更新索引。其更新周期对搜索引擎搜索的查全率有很大影响。如果更新周期太长,则总会有一部分新生成的网页搜索不到;周期过短,技术实现会有一定难度,而且会对带宽、服务器的资源都有浪费。搜索引擎的网络蜘蛛并不是所有的网站都采用同一个周期进行更新,对于一些重要的更新量大的网站,更新的周期短,如有些新闻网站,几个小时就更新一次;相反,对于一些不重要的网站,更新的周期就长,可能一两个月才更新一次。

一般来说,网络蜘蛛在更新网站内容的时候,不用把网站网页重新抓取一遍,对于大部分的网页,只需要判断网页的属性(主要是日期),把得到的属性和上次抓取的属性相比较,如果一样则不用更新。这被称作增量索引技术,即:在保持原有的大量索引数据不变的情况下,对索引进行小规模的修改和增加。

这里稍带提一下,网页快照所解决的问题,一方面是快速读取网页内容(因为搜索引擎服务器往往比普通站点服务器高速,所以从搜索引擎服务器的快照中读取内容往往比访问源站点的速度要快),另一方面就是当源站点删除了某些网页的时候,快照中依然存有该网页的数据,在快照更新之前,这部分数据也是很有价值的。

倒排索引并不是唯一用于全文检索的方法,与它并存的还有后缀数组等方法,但是倒排索引的效果最佳,也最容易理解,也因此成为了主流。

真理就是这样,最有效的总不是最复杂的,且往往是最简单的。在做研究的过程中,如果把某种理论或技术推衍到了十分复杂的地步,往往是推错了方向。

2.3.4分词的基本理论

倒排索引的基本原理是简单的,但实现起来还包括很多技术细节。其中很重要的一点,就是分词。

(1)分词的概念

不妨再看前一节的例子,建立两个倒排索引,哪一个更好呢?

显然,后者更好。因为,前者对很多“没用”的词进行了索引。很少有人去搜索“了”或“呢”之类的词语,这样的词语在几乎每篇文章中都会有。通过看这个例子,可以发现“分词”的概念了:分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。

(2)单字法和二分法

对于全文索引来说,分词的算法好坏直接关系到索引的质量。对一组文章,把每篇文章的每个字都做索引,得到的索引叫“单字索引”。对每两个字做索引,得到的索引叫“二分索引”。

比如,有这样一篇文章,内容如下:

伟大的祖国啊,我深爱着你啊!

对这篇文章进行单字分词,得到的结果如下:

伟 ……………………………………………..

大 ……………………………………………..

的……………………………………………..

祖 ……………………………………………..

国 ……………………………………………..

啊 ……………………………………………..

我 ……………………………………………..

深 ……………………………………………..

爱 ……………………………………………..

着 ……………………………………………..

你 ……………………………………………..

要注意,原文是12个字,这里面分出的结果是11个词。过滤掉了标点符号,两个“啊”重复了,变成一个“啊”。

如果对这段文字进行二分法分词,得到的结果如下所示:

伟大 ……………………………………………..

大的……………………………………………..

的祖 ……………………………………………..

祖国 ……………………………………………..

国啊 ……………………………………………..

啊我 ……………………………………………..

我深 ……………………………………………..

深爱 ……………………………………………..

同类推荐
  • 语文新课标课外读物——傲慢与偏见

    语文新课标课外读物——傲慢与偏见

    现代中、小学生不能只局限于校园和课本,应该广开视野,广长见识,广泛了解博大的世界和社会,不断增加丰富的现代社会知识和世界信息,才有所精神准备,才能迅速地长大,将来才能够自由地翱翔于世界蓝天。否则,我们将永远是妈妈怀抱中的乖宝宝,将永远是温室里面的豆芽菜,那么,我们将怎样走向社会、走向世界呢?
  • 名家的教育智慧

    名家的教育智慧

    本书介绍了中外教育家关于教育的精彩论述,集中回答了教育的本质、教学的艺术、知识之美、教师的职业生活、儿童的成长等问题。
  • 提高自救自护能力

    提高自救自护能力

    青少年是祖国的未来和希望,培养综合素质高的接班人是我们教育的天职。当今社会,我们国家在现代化发展的道路上正面临着极大的机遇和巨大的挑战。要应对挑战就必须使未来的建设者们具备全面的素质;不但要有自然科学的知识,同时也必须掌握人文科学的知识。只有具备综合素质的人,才能称得上是合格的人才。一个民族的全体国民要想全面提高人文素质,就必须以提高综合素质为突破口。本选题是为青少年量身定做的综合素质提高自助读本。
  • 语文新课标课外必读第七辑:爱因斯坦传

    语文新课标课外必读第七辑:爱因斯坦传

    国家教育部颁布了最新《语文课程标准》,统称新课标,对中、小学语文教学指定了阅读书目,对阅读的数量、内容、质量以及速度都提出了明确的要求,这对于提高学生的阅读能力,培养语文素养,陶冶情操,促进学生终身学习和终身可持续发展,对于提高广大人民的文学素养具有极大的意义。
  • 新课标英语学习资源库-打火匣

    新课标英语学习资源库-打火匣

    课标是常新的,经典却是永恒的,走进经典的选择,学习兴趣的提高离你只有一步之遥。本套丛书包括奥林匹斯山众神、白雪公主、百万英镑、包打听、财神与爱神、打火匣、带家具出租的房子、公主与美洲狮、好孩子的故事、荷马墓上的一朵玫瑰、黄缘奇遇、灰姑娘、井边的牧鹅女、警察与赞美诗、两个勇敢的伊洛特人、母亲的故事、牧羊女和扫烟囱的人、女巫的面包、青蛙王子、三万元遗产、沙丘的故事、忒修斯历险记、特洛伊战争、天国花园、小爱达的花、小红帽、幸福的家庭、雪人、一本不说话的书、勇敢的小裁缝。
热门推荐
  • 尧山堂偶隽

    尧山堂偶隽

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 零售业特许连锁经营战略

    零售业特许连锁经营战略

    本书介绍了零售业特许连锁经营概论,零售企业的先期规划、拓展策略,特许连锁加盟商加盟策略,及零售业特许连锁经营战略等内容。
  • 夏洛特小姐的庄园

    夏洛特小姐的庄园

    夏洛特`维多利亚二世,一位半吸血鬼半巫女血统的美丽女子,与两个非人执事一起生活在一处被禁锢了时间流逝的庄园中。为了寻找当年母亲被杀害和导致父亲失踪的犯人,帮助特殊刑事部解决各种特殊案件。最后的真相到底是什么?父母被害的背后又隐藏着怎样的秘密?
  • 爱情公寓之有情人终成眷侣

    爱情公寓之有情人终成眷侣

    展博、宛瑜、羽墨和张伟回到了朋友们的身边,一菲终于正式上位。爱的种子已经发芽,有情人终成眷侣!
  • 六朝金粉赋

    六朝金粉赋

    前世要风得风,要雨得雨,却不得善终。今生她誓不再触碰那冰冷的森森宫门。惟愿安安稳稳,宁静祥和过日子。男耕女织,日出而作,日落而息。然,天会不会遂了今生心愿?而,她能不能走出前世怪圈?有诗曰:再临六朝金粉地,笑看金陵帝王州。※※※※※※※※※※(新人一只,新书一枚,求点击、收藏和推荐票。元芳,你怎么看?)
  • 古仙风暴

    古仙风暴

    亿万年前神州大地,山海万里,古貌苍苍。天地间时而风雷阵阵,致人死命。甚至地动天摇,山崩地裂,将人生生活埋。更有洪荒猛兽,九幽冥鬼,时时出没于世间。古时的人类,在那一片天地之间,生活苦不堪言,唯有艰难求存。然而终有一日,人终于找到了对抗甚至统御这一片天地的方法——修道!!!道者!!!天地之源!!!天地至理!!!天地之极也!!!上可翱翔九天,下可通达幽冥。静可止水断流,动可移山填海。自此之后天地万物生灵无不降服于人类。然而,许多人却未必知晓,道之极限,可称之为仙。传说中第一个掌握并且创造修道之法的人类,便被后世称为古仙……
  • 星海月空

    星海月空

    浩瀚的星海,无限的宇宙。他抬头就能看到的,是月空中那曼妙的身姿。她就是人人敬仰的月亮之神!他是一只修炼了上千的雪狼,他日夜不变的守护着那轮明月。她的双眼只看到地狱之火的热烈,热血沸腾!
  • 铜铃诡谈

    铜铃诡谈

    自古有“招魂铃”一说,偶然得一铜铃,开启了一场见鬼之旅!每每铃声响起,接二连三的死者现身,恶鬼索命。血色扳指,噬魂砚台,活死人,陪葬物的诅咒之谜,一连串诡异的事情相继发生,这一切指向古棺洞的神秘女尸。以为学技能防身保命,却步入一个“换命”的阴谋!铜铃声响,是招魂,还是索命?在阴鬼路上挣扎求生,究竟谁能存活着回到人间……
  • 时间线限

    时间线限

    在读大学生,初中辍学生,闺蜜,还是普通朋友?不同的人生轨迹,交叉点的火花,是燃尽友谊,透支信任,还是互相支持,绽放青春烟花?
  • 总裁娇妻的痞子情人

    总裁娇妻的痞子情人

    【没人看……逼我放大招QAQ文内有肉吃,想要小电影之类的,也可以有⁄(⁄⁄•⁄ω⁄•⁄⁄)⁄】一句话来说就是一个“小痞子”修炼有道逆袭白富美的励志故事。【我承认,有点烂俗】他从小为孤儿,却有个不靠谱的师傅,有幸来说他能修炼有道,小小年纪便获天师之力,本领也算首屈一指;但是,不幸来说,因为他的本领和不喜低调的个性也让他荣获美女一大堆,不过……美女多了也不见得是好事啊!没听过,唯女子与小人难养也吗?诶呀呀,看来,他只好带着他可爱的美女总裁远走高飞咯~~╮(╯_╰)╭【喜欢本人的作品可加QQ:3491310960,有群:284826485觉得好的话希望大家踊跃送礼物点赞收藏啦~~~还有,看完请留爪印~】