搜索引擎简述
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息,在对信息进行组织和处理后,为用户提供检索服务,将检索的相关信息展示给用户的系统。它是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术。
索引处理组件是搜索引擎的核心组件,提供高效的数据结构、算法和检索策略。主要分为文本采集、文本转换、创建索引等组件。
文本采集用于发现、识别和存储文档,为索引做准备。通常具备以下几个功能:
爬虫,它负责通过超链接来源源不断地从互联网、文件服务器等信息源中爬取网页、新闻、email、话题等文档.并将这些信息加工后丢进文档数据库中。
信息源
转换,来自爬虫抓取或者信息源的文档集合,格式很多,比如 html、xml、PDF、doc、ppt 等,而我们更喜欢纯文本的格式以高效和有效处理.
文档数据库,必须有一个能存储文档及其元数据的地方,否则索引再快,也没东西返回,虽然互联网上的文档可以时时抓取,但离线分析显然更快,这就需要一个文档数据库.
文本转换,将文档转换成为索引项或特征,主要有以下几个功能,
解析,对文档进行切分。
停用词处理。
词干提取,同义词或英文中的派生词处理。
链接分析,通过链接抽取和分析算法,可以得出一个页面的重要程度和被关注程度。
信息提取,提取对返回正确搜索结果有意义的信息。
分类,对提取出来的信息打上分类标签,这里主要用到有监督学习技术。
索引创建,索引往往比文档本身要小很多,比如 lucene 中的索引可以达到是原文档的 20-30%,同时相对文档来讲更具可比较性。
文档统计,统计、汇总和记录词出现的频率、位置和其他特征等信息。
附加权重,计算索引项(或词项)的权重,词的权重反映了词在文章中的相对重要性,排序算法需要这些信息来为分档进行打分。
倒排,是创建索引组件的核心,因为它事关效率。难点在于如何高效地处理倒排转换过程,应付全量和增量信息的索引建立任务。
分布索引,搜索引擎处理的文档集合非常大,必须考虑索引的分布式问题。
评论