搜索引擎架构

一、搜索引擎简介

信息检索是关于信息的结构、分析、组织、存储、搜索和检索的领域。本文主要描述了搜索系统的中各个组件的名称和功能。

信息检索的应用:带结构的多媒体文档搜索,有意义的文本内容和其他媒体(图片,视频,音频)搜索,垂直搜索(限制在特殊的主题上),企业搜索(在企业内网中寻找)

特殊的搜索

在搜索引擎设计时,应该考虑到数据量和用户量的增长,必须是可定制自适应的,许多功能如排序算法、界面或者索引策略,能够为满足新的应用需要而调整和适应。垃圾信息是指为某种商业利益而制作的文档中,包含的误导的、不合适或不相关的信息。


二、搜索引擎架构

1、文本采集

文本采集组件用于发现文档,并且使这些文档能够被搜索到。通常需要通过爬行或者扫描互联网、企业内网、桌面或者其他信息源,来建立一个文档集和。

文档采集组件还创建一个文档数据库,其中包含所有文档的文本和元数据,元数据是关于一篇文档的信息,如文档类型、结构、长度或者其他特征。

常见组件:

1.爬虫:通过追踪网页上的超链接,来找到并下载页面。

2.信息源:通过检测信息源,来获取信息源更新的内容。

3.转换:将文档或者信息源转化成统一的文本格式和文档的元数据格式。如过程中,控制序列和巨头特殊格式的非内容数据,或删除,或作为元数据进行记录。

4.文档数据库:用于管理大量的文档及这些文档相关的结构化数据。结构化数据包括文档的元数据,及从文档中抽取出来的其他信息,如超链接和锚文本。


2、文本转换


文本转换组件将文档转换为索引项或者特征。

常见组件:

1.解析器:负责处理文档中的文本词素(token),以识别文档中的结构化元素,如标题、图表、超链接和页首文字等等。

2.停用词去除:从索引项的词素序列中删除常用词,如“的”,“和”等等,这些词对文本所涵盖的话题贡献很小,可以大幅度减少索引的整体数量。

3.词干提取(用于英文等外国语言):把同一个词干得到的派生词进行归类,去除词缀得到词根的过程。如“fish”、"fishes"、“fishing”可以归成一类。

4.超链接的抽取和分析:在对文档的解析过程中,识别网页中的超链接和锚文本(网页上可以点击的文本),并记录在文档数据库中。

5.信息抽取:用于识别更加复杂的索引项,如黑体、加粗的词,或者标题中的词,通常需要更多的附加计算,常用的方法有抽取句法特征(命名实体识别器)。

6.分类器:为文档或文档中的部门内容识别出与类别相关的元数据。分类技术给文档分配事先定好的类别标签。聚类技术用于在没有事先定义累的标签的基础上,将相关的文档聚集在一起。


3、索引

索引创建组件利用文本转换组件输出的结果,创建索引或者数据结构。索引项是文档的一部分,存储在索引表中并且勇于搜索。最简单是索引项是一个词,其他索引如短语、人名、日期、超链接等。

索引的创建在时间和空间上都必须是高效的,当增加新的文档到文档集和中,必须能够高效的更新。倒排索引是目前最常见的索引形式(每一个索引项都含有一个列表,列表中包含那些含有该索引项的所有文档)。

索引的更新方式有:索引合并、结果合并。

常见组件:

1.文档统计:汇总和记录词、特征及文档的统计信息。通常包含索引在各文档中出现的次数、位置等。

2.加权:索引项的权值反映了文档中词的相对重要性,并用于排序计算分值。加权组件用文档统计的结果计算权值并存储在查找表中。另一方面,权值的形式是由检索模型来确定的。

3.倒排:将文本转换组件传递过来的“文档-词项”信息流转换为“词项-文档”信息流,以建立倒排索引。

4.索引分派:将索引分发给多台计算机,使索引和查询处理和并行。


4、交互 

用户交互组件提供了搜索用户和搜索引擎之间的接接口,一个功能是接收用户查询并将它转化为索引项另一个功能是从搜索引擎得到一个排序好的文档列表,并将它重新住址成搜索结果显示给用户

用户无法改变搜索系统的工作工作方式,但是可以通过构造查询、浏览结果和重写查询等过长,与搜索系统进行交互。

常见组件:

1.查询输入:为查询Query提供接口和解析器。

2.查询转换:在查询文本上,需要进行词素切分、停用词去除和词干提取,以生成与文档词项具有可比性的索引词。

-拼写检查和查询建议:生成与用户初始查询相似的输出,像用户提供初始查询的一切候选查询。(一般会构建词典,也可以根据查询日志。)

-查询扩展:将用户的初始查询用一个或多个词去扩展,或者替换查询中的一些词,然后将修改后的勋勋建议提交给用户。

-相关反馈:利用用户认为相关的文档中出现的词项,对查询进行扩展。

3.结果输出:对排序好的结果进行展示,常见的任务可能有生成网页摘要、强调文档中重要的词和段落、对结果聚类以找到相关的类别、将相应的广告增加到结果显示中。


5、排序

排序组件从用户交互组件得到转换之后的查询,并根据检索模型生成一个按照分值排好序的文档列表。排序必须是高效的,因为短时间内需要处理大量的用户查询。另一方面排序也必须是高质量的,因为排序的质量决定是否能够找到相关信息。排序的效率依赖于索引技术,而质量依赖于所采用的检索模型。

常见组件:

1.打分机制:在检索模型的基础上,使用排序算法来计算文档的分值,确定文档的排序。

2.性能优化:设计排序算法和索引表的设计,以降低系统的响应时间,提高查询吞吐量。

3.分布式:如查询代理,将网络中多个用户查询分派给不同的处理器,并将各处理器返回的结果整合到一起。


6、评价

评价组件用于评测和检测系统的效果和效率,利用日志来记录和分析用户的行为,评价的结果用来调整和改善排序等组件的形内。评价组件是一种离线行为,但却是不可或缺的一部分。

常见组件:

1.日志分析:查询日志可以用于评析检查、相关查询词推荐、查询缓存等任务。如点击数据和停留时间可以用来评价和调整排序。

2.排序分析:对大量的“查询-文档”对,根据日志数据和相关的判定,可以对排序算法进行评估,并与后弦的算法进行比较。对输出结果的评价引侧重于排序靠前的文档质量,而非整个列表。

3:性能分析:用于检测和改啥系统的整体性能-

-性能评价指标

响应时间:从发出一个查询请求得到检索结果列表志坚的延迟。

查询吞吐量:在一个给定时间内能够处理的查询数量。

索引速度:为文本编排索引以便用于搜索的速度。

-新数据合并到索引中的速度

覆盖率:衡量现存信息有多少被索引和存储在搜索引擎中。

时新性:衡量所存信息的年龄。


参考资料:

《搜索引擎-信息检索实践》 |  W.Bruce Croft   Donald Metzler   Trevor Strohman

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容