数据采集模块俗称网络爬虫或者网络蜘蛛。虽然名字很形象,但是从实践的角度来说,计算机程序的处理过程和昆虫的自发行为有很大的差别。数据采集模块需要能够正确获取到网站的网页,它的行为更像我们在浏览器中输入网址后不断的点击网页链接。所以更为贴切的说法是数据采集模块即模拟了网页浏览器,又模拟了人类的网页点击行为。粗放地来看,数据采集模块应该具有2个基本功能:
1:根据网页地址(URL)获取该地址对应的网页文件。
2:解析出网页文件中的链接地址和网页有效信息文本。
数据加工模块是搜索引擎的核心功能,它负责对数据采集模块采集的网页有效信息文本进行加工,使得我们人类能看懂的文字信息能够按照设定的规则被计算机理解。对于一个初级搜索引擎来说,需要将文本文字进行拆解、归类,如果是中文,还需要在拆解的时候对中文进行分词。之后将解析结果发送给索引模块,索引模块再进一步加工后录入到搜索引擎的数据库中。如果要实现一个更加智能的高级搜索引擎,在上述步骤的基础上,还要能够实现语义理解,这样当用户在搜索“明天星期几”的时候,搜索引擎给出的应该是包含“明天是星期六”或者“明天是星期一”。。。。。。诸如此类的结果,而不仅仅是含有“明天星期几”这5个关键词的网页结果集合。
数据索引模块是搜索引擎的另外一个核心,它和数据加工模块的关系就像人类的心和肺,缺一不可。这个模块主要功能是将数据加工模块的处理结果保存在一个规范的数据结构中,这样做的目的是为了给接下去的数据服务模块提供便利,使得数据服务模块能够在极短的时间内完成对整个互联网数据的信息检索。
数据服务模块是搜索引擎对外部提供服务的接口。它要能够对外部输入进行及时响应,并联系数据索引模块,取出用户查找内容的网页结果。很多时候,为了能够高效地对用户行为进行反馈,搜索引擎常常在这个模块处实现一些预测或者缓存算法,别勉对用户的每一次查询都实施一次完整的数据查找流程。