C++高级数据结构算法 | 倒排索引(inverted index)

文章目录

    • 从搜索引擎谈起
    • 倒排索引的基本概念
    • 倒排索引举例
    • 浅谈正排索引
    • 倒排索引的实现


从搜索引擎谈起

在关系数据库系统里,索引是检索数据最有效率的方式,。但对于搜索引擎,它并不能满足其特殊要求:

  • 海量数据:搜索引擎面对的是海量数据,像Google,百度这样大型的商业搜索引擎索引都是亿级甚至百亿级的网页数量 ,面对如此海量数据 ,使得数据库系统很难有效的管理。
  • 数据操作简单:搜索引擎使用的数据操作简单 ,一般而言 ,只需要增、 删、 改、 查几个功能 ,而且数据都有特定的格式 ,可以针对这些应用设计出简单高效的应用程序。而一般的数据库系统则支持大而全的功能 ,同时损失了速度和空间。最后 ,搜索引擎面临大量的用户检索需求 ,这要求搜索引擎在检索程序的设计上要分秒必争 ,尽可能的将大运算量的工作在索引建立时完成 ,使检索运算尽量的少。一般的数据库系统很难承受如此大量的用户请求 ,而且在检索响应时间和检索并发度上都不及我们专门设计的索引系统。

搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档

怎么快速找到包含某个关

你可能感兴趣的:(算法与数据结构精析)