搜索引擎的难点及工作原理
搜索引擎的难点包括如下几点:
1) 是否支持并发的爬取数据,如果要并发,要保证所有采集器能合作采集,不会出现重复采集的情况.
2) 采集的数据还要有一个排重的过程. 只需要采集一个网站更新的数据
3) 对于需要cookie数据的网页如何采集的问题,部分网站需要通过cookie数据登陆网站
4) 自动通过识别码的验证
5) 一些网站对于密集访问的请求会拒绝,技术上也要进行处理
6) 对于一些特殊网页的采集问题, 比如flash网页,一些游戏网页等,很多网站会让采集程序陷入其中,采集数万无效数据,显然是浪费了采集程序的精力
7) 大数据量的存储也是个难点,据说Google的存储是自己开发的架构,没用任何的数据库,因为数据库的查询效率还是有一定损失. 可以采用数据块的模式,然后通过散列表的模式连接.
以上主要列出的是后台采集器的相关技术难点,在前台检索、查询效率等方面仍有许多难点.
搜索引擎的工作原理大致可以分为:
1、搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其他中的超链接,就象日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超连结,机器人便可以遍历绝大部分网页。
2、整理信息:搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。
3、接受查询:用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。