[Spring cloud 一步步实现广告系统] 12. 广告索引介绍
索引設(shè)計介紹
在我們廣告系統(tǒng)中,為了我們能更快的拿到我們想要的廣告數(shù)據(jù),我們需要對廣告數(shù)據(jù)添加類似于數(shù)據(jù)庫index一樣的索引結(jié)構(gòu),分兩大類:正向索引和倒排索引。
正向索引
通過唯一鍵/主鍵生成與對象的映射關(guān)系。
比如,我們從數(shù)據(jù)庫中查詢數(shù)據(jù)的時候,根據(jù)數(shù)據(jù)主鍵ID查詢當(dāng)前記錄,其實就是一個正向索引的過程。
根據(jù)這個描述,很明顯,我們的正向索引適用于推廣計劃,推廣單元 和 創(chuàng)意這幾張表的數(shù)據(jù)上,因為廣告檢索的請求信息,不可能是請求具體的計劃或推廣單元,它的檢索請求一定是限制條件。
倒排索引
也叫反向索引,是一種檢索方法。它的設(shè)計是為了存儲在全文檢索下某個單詞在一個文檔貨一組文檔中存儲位置的映射,是在文件檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu)。
也就是我們提供具體的內(nèi)容實例,根據(jù)內(nèi)容來查詢該內(nèi)容所處的位置。
如何在廣告系統(tǒng)中使用倒排索引?
核心用途是對各個維度 限制的整理。
如圖中所示,我們希望找到西安市的所有的推廣單元信息,那么我們只需要根據(jù)陜西省-西安市來進行索引,可以快速定位到所在的推廣單元有10,11兩個。
索引維護介紹
索引的維護最主要的是為了保證檢索服務(wù)中的索引是完整的,我們在維護索引數(shù)據(jù)的時候,有兩種場景會帶來廣告數(shù)據(jù)。在系統(tǒng)啟動之初,會有一部分初始化數(shù)據(jù),在系統(tǒng)上線運行之后,會逐漸有不少新的廣告信息加入。因此,我們的廣告索引類型整體可以分為兩大類:
全量索引
檢索系統(tǒng)在每次啟動的時候,需要一次性讀取當(dāng)前數(shù)據(jù)庫中的所有數(shù)據(jù),建立索引。
TIPS:(這里有一個問題,如果我們系統(tǒng)流量高的時候,需要部署多實例,每一個實例在系統(tǒng)啟動的時候,都直接從數(shù)據(jù)庫中加載全量索引,會對數(shù)據(jù)庫造成極大的壓力。)
因此,通常我們實現(xiàn)全量索引都是通過讀取文件中預(yù)先存儲的廣告數(shù)據(jù)來實現(xiàn)全量索引導(dǎo)入。
增量索引
顧名思義就是后來新增的數(shù)據(jù)索引。系統(tǒng)在運行過程中,會對數(shù)據(jù)庫的變動進行監(jiān)控,實現(xiàn)加載更新,構(gòu)建索引,我們系統(tǒng)中通過對數(shù)據(jù)庫表的CRUD操作的變動,通過監(jiān)聽Binlog來實現(xiàn)增量索引的更新。
轉(zhuǎn)載于:https://www.cnblogs.com/zhangpan1244/p/11312076.html
總結(jié)
以上是生活随笔為你收集整理的[Spring cloud 一步步实现广告系统] 12. 广告索引介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM内存区域划分总结
- 下一篇: php 操作 redis 常用命令