在咱们广告系统中,为了咱们能更快的拿到咱们想要的广告数据,咱们须要对广告数据添加相似于数据库index同样的索引结构,分两大类:正向索引
和倒排索引
。数据库
经过惟一键/主键生成与对象的映射关系。好比,咱们从数据库中查询数据的时候,根据数据主键ID查询当前记录,其实就是一个正向索引的过程。数据结构
根据这个描述,很明显,咱们的正向索引适用于推广计划
,推广单元
和 创意
这几张表的数据上,由于广告检索的请求信息,不多是请求具体的计划
或推广单元
,它的检索请求必定是限制条件。spa
也叫反向索引
,是一种检索方法
。它的设计是为了存储在全文检索下某个单词在一个文档货一组文档中存储位置
的映射,是在文件检索系统中最经常使用的数据结构。也就是咱们提供具体的内容实例,根据内容来查询该内容所处的位置。设计
如何在广告系统中使用倒排索引?code
核心用途是对各个维度 限制的
整理
。
如图中所示,咱们但愿找到西安市的全部的推广单元信息,那么咱们只须要根据陕西省-西安市
来进行索引,能够快速定位到所在的推广单元有10,11
两个。对象
索引的维护最主要的是为了保证检索服务中的索引是完整的,咱们在维护索引数据的时候,有两种场景会带来广告数据。在系统启动之初,会有一部分初始化数据,在系统上线运行以后,会逐渐有很多新的广告信息加入。所以,咱们的广告索引类型总体能够分为两大类:blog
检索系统在每次启动的时候,须要一次性读取当前数据库中的全部数据,创建索引。TIPS:(这里有一个问题,若是咱们系统流量高的时候,须要部署多实例,每个实例在系统启动的时候,都直接从数据库中加载全量索引,会对数据库形成极大的压力。)索引
所以,一般咱们实现全量索引都是经过读取文件中预先存储的广告数据来实现全量索引导入。图片
顾名思义就是后来新增的数据索引。系统在运行过程当中,会对数据库的变更进行监控,实现加载更新,构建索引,咱们系统中经过对数据库表的CRUD操做的变更,经过监听Binlog来实现增量索引的更新。