[Spring cloud 一步步实现广告系统] 12. 广告索引介绍
2019-08-06 21:48
986 查看
索引设计介绍
在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类:
正向索引和
倒排索引。 正向索引
通过唯一键/主键生成与对象的映射关系。
比如,我们从数据库中查询数据的时候,根据数据主键ID查询当前记录,其实就是一个正向索引的过程。
根据这个描述,很明显,我们的正向索引适用于
推广计划,
推广单元和
创意这几张表的数据上,因为广告检索的请求信息,不可能是请求具体的
计划或
推广单元,它的检索请求一定是限制条件。 倒排索引
也叫
反向索引,是一种检索方法。它的设计是为了存储在全文检索下某个单词在一个文档货一组文档中存储位置的映射,是在文件检索系统中最常用的数据结构。也就是我们提供具体的内容实例,根据内容来查询该内容所处的位置。
-
如何在广告系统中使用倒排索引?
核心用途是对各个维度 限制的
整理
。
如图中所示,我们希望找到西安市的所有的推广单元信息,那么我们只需要根据
陕西省-西安市来进行索引,可以快速定位到所在的推广单元有
10,11两个。
索引维护介绍
索引的维护最主要的是为了保证检索服务中的索引是完整的,我们在维护索引数据的时候,有两种场景会带来广告数据。在系统启动之初,会有一部分初始化数据,在系统上线运行之后,会逐渐有不少新的广告信息加入。因此,我们的广告索引类型整体可以分为两大类:
全量索引增量索引检索系统在每次启动的时候,需要一次性读取当前数据库中的所有数据,建立索引。
TIPS:(这里有一个问题,如果我们系统流量高的时候,需要部署多实例,每一个实例在系统启动的时候,都直接从数据库中加载全量索引,会对数据库造成极大的压力。)
因此,通常我们实现全量索引都是通过读取文件中预先存储的广告数据来实现全量索引导入。
顾名思义就是后来新增的数据索引。系统在运行过程中,会对数据库的变动进行监控,实现加载更新,构建索引,我们系统中通过对数据库表的CRUD操作的变动,通过监听Binlog来实现增量索引的更新。
相关文章推荐
- [Spring cloud 一步步实现广告系统] 4. 通用代码模块设计
- [Spring cloud 一步步实现广告系统] 7. 中期总结回顾
- [Spring cloud 一步步实现广告系统] 配置项目结构 & 实现Eureka服务
- [Spring cloud 一步步实现广告系统] 3. 网关路由
- [Spring cloud 一步步实现广告系统] 5. 投放系统配置+启动+实体类
- [Spring cloud 一步步实现广告系统] 9. 主类和配置文件
- [Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用
- [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
- [Spring cloud 一步步实现广告系统] 4. 通用代码模块设计
- 利用WhiteHose一步步建立分布式系统的框架(七)--添加组件的操作并实现分布式系统
- java 实现一个广告系统
- 介绍RAID的工作原理及一步步来实现RAID的创建
- Kubernetes存储系统介绍及机制实现
- VC++系统托盘简单实现介绍
- 分布式数据库系统---商旅预定系统的实现(12)
- lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍
- SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- 基于Spring Boot和Spring Cloud实现微服务架构学习(一)-Spring框架介绍
- 利用服务进程注入到系统关键进程的代码,实现定期弹出广告
- ATM系统实现[12]——抽象转户类[00原创]