错误博客( cuowu.com )发布于 2019-06-10 16:22:04

什么是软件架构

在本章我们将描述搜索引擎的基本软件架构。对于软件架构的定义,尽管没有一个统一的规范,但软件架构通常包括软件组件、组件提供的接口以及各组件之间的联系。软件架构是在一个特殊的抽象层次用于描述系统的工具。UIMA(Unstructured Information Management Architecture,非结构化信息管理架构)是一个软件架构的实例,该架构用于提供一个将搜索和相关语言技术组件整合在一起的标准。UIMA为组件定义了接口,使系统在增加处理文本和其他非结构化数据的技术的时候,变得更加简单。

搜索引擎的架构用于提供对于系统中重要的组件以及组件之间关系的高层次的描述。尽管架构中有些组件的确相当于Galago和其他搜索引擎的软件模块,但它并不是一个对于系统的代码级的描述。在本章及本书中我们都使用该软件架构,以便为讨论特定的技术提供背景。

架构的设计用于保证系统能够满足应用需求或目标。搜索引擎的两个主要目标是:

  • 效果(质量):对于一个用户查询,希望能够检索到最多的相关文档。
  • 效率(速度):尽可能快地处理用户的查询。

也许系统还有其他一些特殊目标,但这些也都属于效果问题或者效率问题(或者两者都有)。例如,搜索的文档集合发生了变化,如何确保搜索引擎系统对该变化做出快速的反应,就属于效果和效率问题。

搜索引擎的架构是由效果和效率这两个需求决定的。原因在于,用户需要一个有效率的系统。搜索引擎采用专门的、经过优化的数据结构,以达到快速检索的目的;用户需要高质量的结果,搜索引擎对文本进行深入的加工处理,并存储有助于改善结果相关性计算的文本统计学结果。

在接下来的章节中讨论的一些组件,已经沿用了几十年。事实证明,这种通用的设计对于检索效率和检索效果的折中起着重要的作用。在后续的章节中,会进一步详细讨论这些组件。


2020年错误博客亲测项目系列

错误教程( cuowu.com )专注网推培训、SEO培训和网赚培训,微信/电话:13722793092

关注微信公众号:第一时间获得错误博客最新教程,让我们一起成长!

公众号二维码