搜索引擎的架构_读书笔记

来源:互联网 发布:微商城源码下载 编辑:程序博客网 时间:2024/06/01 08:30

一、软件架构

     软件架构通常包括软件组件、组件提供的接口以及各组件之间的联系。

  • UIMA   非结构化信息管理架构

      这是一个软件架构的实例,用于提供一个将搜索和相关语言技术整合在一起的标准。它为组件定义了接口,使系统在增加处理文本和其他非结构化数据的技术的时候,变得更加简单。

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

    • 效果(质量)

    • 效率(速度)

二、搜索引擎的基本构件

搜索引擎主要功能:

  1. 索引处理(建立可查找的数据结构)

    1. 文本采集

      1. 发现文档,比如爬虫;

      2. 创建文档数据库,记录文档类型、结构等特征信息。

    2. 文本转换

将文档转换为索引项或者特征

      1. 索引项

    是文档的一部分,存储在索引表中用于搜索。比如文档中一个词。

      1. 特征

   更多应用在机器学习中,是文档的一部分,用于表达文档内容,也可以是索引项。如日期、网页中的超链接等。

    1. 索引创建

利用文本转换组件的输出结果,创建索引或数据结构。要求在时间和空间上都是高效的。


  1. 查询处理

    1. 用户交互

      1. 接收用户的查询并将它转换为索引项

      2. 从搜索引擎得到一个排好序的文档列表

    2. 排序

   排序组件是搜索引擎系统的核心,必须是高效的。

    1. 评价

用于评测和检测系统的效率和效果,作为调整和改善排序组件的性能。

      1. 在线:记录用户和系统的日志数据,分析用户的行为

      2. 离线(主要)

三、组件及其功能

(1)文本采集

1. 爬虫

    网络爬虫通过追踪网页上的超链接来找到并下载新的页面
  • site search
基于一个站点,站内搜索
  • focused/topical爬虫
采用分类技术限制所访问的网页是关于同一个主题的。适用于垂直搜索和话题搜索系统,如医学信息网站。
  • 企业搜索
    • 公司内部和外部的页面(通过网页超链接获取
    • 扫描公司和个人的目录,如桌面搜索

2. 信息源

      文档信息源(document feed)是一种存取实时文档流的机制。

  • 爬虫——发现新的文档
  • 阅读器(如RSS)——通过监测信息源,抓取新的文档

3. 转换

      将抓取到的文档转换成统一的文本格式和文档的元数据格式。在进一步深入处理之前,保证不同语言的文档使用统一的编码方案进行了转换。

4. 文档数据库

      管理大量的文档以及与这些文档相关的结构化数据。

(2)文本转换

1. 解析器

      解析组件负责处理文档中的文本词素(tokens)序列,以识别文档中的结构化元素,如标题、图表、超链接和页首文字等等。

  1. 词素切分(tokenzing)
  2. 文档结构通常由HTML、XML等标记语言来指定

2. 停用词去除

      从成为索引项的词素序列中删除常用词,如“的”

3.词干提取

      把同一个词干(stem)得到的派生词进行归类,如“fish”和“fishes”

4.超链接的抽取和分析

  • 抽取:从文档中抽取超链接和锚文本
  • 分析:分析页面的重要程度,如pagerank算法

5.信息抽取

      用于识别更加复杂的索引项,比如公司名称、日期等等。

6.分类器

(3)索引的创建

1. 文档统计

  • 文档统计组件

汇总和记录词、特征及文档的统计信息。

  • 排序组件
使用上述信息计算文档的分值。

2. 加权

      赋予索引项权值,权值的形式由检索模型来确定。

3. 倒排

      将文本转换组件传过来的文档—词项信息,转换为词项—文档信息,以便建立倒排索引。

4. 索引分派

(4)用户交互

1. 查询输入

      查询输入组件为查询语言提供接口和解析器。

2. 查询转换

     用于在生成排好序的文档之前和之后,改善初始查询。如拼写检查和查询建议。

3. 结果输出

     展示排好序的文档,包括生成网页摘要、强调文档中重要的词和段落、对文档聚类(如新闻)。

(5)排序

  1. 打分机制

  2. 性能优化

  3. 分布式

(6)评价

  1. 日志

  2. 排序分析

  3. 性能分析





0 0
原创粉丝点击