搜索引擎设计(精品)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---------------------------------------------------------------最新资料推荐------------------------------------------------------
搜索引擎设计(精品)
搜索引擎设计学号:
姓名:
专业:
搜索引擎设计1. 研究思路当前主流的搜索引擎使用全文检索技术,收集因特网上几千万到几亿个网页,并对网页中的每一个词进行索引。
当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被提交出来,在经过复杂的算法排序后展现给用户。
这种基于网页的全文检索系统能够适应大信息量查询的需要,具有很强的实用性。
模拟百度、 Google 等搜索引擎的运行模式,对此类搜索引擎的结构组成、关键算法、技术改进目标进行探讨。
2. 搜索引擎的构成一个搜索引擎由搜索器(Spider) 、索引器(Indexer)、检索器(Sercher)和用户接口(UI) 等四个部分组成。
系统首先由 Spider 即自动的收集程序收集网页的内容;然后由Indexer 将收集回来的内容进行分析,建立一个索引;再由Sercher 响应用户的检索请示,用户输入关键字后,搜索器要用这个检索词与建立的索引器匹配,匹配后作相关性排序;最后通过 UI
1/ 8
将排序结果送给用户。
系统结构如图 1 所示图 1 搜索引擎系统结构互联网数据库文件搜索器FullText文件索引器用户输入用户接口检索器Index文件2. 1 搜索器搜索器俗称蜘蛛,其功能是日夜不停地在互联网中漫游,耙回信息。
它要尽可能多、尽可能快地搜集各种类型的新信息,还要定期更新已经搜集过的旧信息,以避免死链。
目前有两种搜集信息的策略:
(1) 从一个起始 URL 集合开始,顺着这些 URL 中的超链( Hyper link) ,以宽度优先、深度优先或启发式方式循环地在互联网中发现信息。
这些起始 URL 可以是任意的 URL,但常常是一些非常流行、包含很多链接的站点(如 Yahoo! ) 。
(2) 将 Web 空间按照域名、 IP 地址或国家域名划分 , 每个搜索器负责一个子空间的穷尽搜索。
搜索器搜集的信息类型多种多样,包括网页文件(如 HTML、XML、 JSP、 ASP 等格式) ,有的搜索器能处理字处理文档(如 Word、Excel、 PowerPoint、 PDF、 RT F 等格式) ,甚至数据库文件(如Oracle、 Lotus Notes 的 NSF 文档数据库文件) 等。
搜索器将耙回的每个文档过滤掉格式符,提取文本数据fulltext。
每个文档对应着一个 fulltext 文件,内容包括网页标题、网
---------------------------------------------------------------最新资料推荐------------------------------------------------------ 页 URL、大小、时间、类型、分类等属性及文本内容,所有生成的这些文件交给 Indexer 进行索引处理。
搜索器的实现常常用分布式并行计算技术,以提高信息发现和更新的速度。
商业搜索引擎的信息发现可以达到每天几百万网页。
2. 2 索引器索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。
Indexer 读入 Spider 生成的 Fulltext 文件,采用基于位置倒排索引与三级 n 元索引相结合的索引机制。
首先进行分词处理生成索引项,并作归并排序,生成 index 和inv 文件, inv 文件为倒排表(Inversion List) ,即由索引项查找相应的文档, index文件形成分词--倒排表对应关系,内容为分词在倒排表中相应的文档块起始地址,含有该词的文档数量等信息。
索引器可以使用集中式索引算法或分布式索引算法。
当数据量很大时,必须实现即时索引,否则不能够跟上信息量急剧增加的速度。
索引算法对索引器的性能(如大规模峰值查询时的响应速度) 有很大的影响。
一个搜索引擎的有效性在很大程度上取决于索引的质量。
2. 3 检索器检索器的功能是根据用户的查询在索引库中快速
3/ 8
检出文档 , 进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。
主要过程如下:
Searcher 对 UI 提出的查询要求进行递归分析,在 UI 中一般采用基本语法来组织要检索的条件。
Searcher 通常支持多种语法规则,如逻辑操作符 AND、 OR、NOT,使用+、 - 连接号和通配符,使用逗号、括号或引号进行词组查找等。
对于每个索引项,匹配 index 文件 ,查到倒排表(inv 文件) 中包含该索引项的文档,并对所有查找出的文档进行集合运算,将结果集按照基于内容和基于链接分析的方法进行相关度评价并排序,最大限度保证检索出的结果与用户查询串有很高的相关性,将最终形成的有序文档结果集合返回给 UI。
2. 4 用户接口用户接口的作用是输入用户查询,显示查询结果,提供用户相关性反馈机制。
主要的目的是方便用户使用搜索引擎,高效率、多方式地从搜索引擎中得到有效、及时的信息。
用户接口的设计和实现使用人机交互的理论和方法,以充分适应人类的思维习惯。
用户输入接口可以分为简单接口和复杂接口两种。
简单接口只提供用户输入查询串的文本框;复杂接口可以让用户对查询进行限制,如逻辑运算(与、或、非; +、 - ) 、相近
---------------------------------------------------------------最新资料推荐------------------------------------------------------ 关系 (相邻、 NEAR) 、域名范围(如. edu 、 . com) 、出现位置(如标题、内容) 、信息时间、长度等等。
目前一些公司和机构正在考虑制定查询选项的标准。
3. 搜索引擎设计中采用的关键算法 3. 1 按步长建立索引项的分词机制要实现真正的全文索引,必须采用基于按步长建立索引项的方式,而不能用特定的词典进行词对应的方式,因为词典方式受收集词汇的限制,可能造成分词不全、有的词查询不到的现象。
按步长建索引项分词机制可以最大限度地避免这种问题。
以步长为 8 举例(一个汉字占两个步长) ,分词举例为:
中华人民共和国;分词结果为:
中华人民、华人民共、人民共和、民共和国按步长分词时以逐个字节形式读入,遇到中文字时就跳动两个位,而英文字符则跳动一位。
而且,对于英文分词时,当词小于步长的大小时不会再继续做分词,而是跳到下一个中文字符或英文字符。
例如,有字符串我是 Chinese People 需要进行分词,定义步长为 8 个字节,分词应该不管中英文按这 8 个字节的长度进行。
第一次分词为我是 Chin,然后因为开头是我字 , 则跳两位;第二次从是字开始分词,而不是我字的第二个字节,结果是是Chines;同理第三次分词也跳两个字节, 但是 Chinese 的长度小于8 , 则只是将Chines e 作为第三次分词结果,然后整个词跳过分
5/ 8