在我們廣告系統(tǒng)中,為了我們能更快的拿到我們想要的廣告數(shù)據(jù),我們需要對(duì)廣告數(shù)據(jù)添加類似于數(shù)據(jù)庫index一樣的索引結(jié)構(gòu),分兩大類:正向索引
和倒排索引
。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了武宣免費(fèi)建站歡迎大家使用!
通過唯一鍵/主鍵生成與對(duì)象的映射關(guān)系。
比如,我們從數(shù)據(jù)庫中查詢數(shù)據(jù)的時(shí)候,根據(jù)數(shù)據(jù)主鍵ID查詢當(dāng)前記錄,其實(shí)就是一個(gè)正向索引的過程。
根據(jù)這個(gè)描述,很明顯,我們的正向索引適用于推廣計(jì)劃
,推廣單元
和 創(chuàng)意
這幾張表的數(shù)據(jù)上,因?yàn)閺V告檢索的請(qǐng)求信息,不可能是請(qǐng)求具體的計(jì)劃
或推廣單元
,它的檢索請(qǐng)求一定是限制條件。
也叫
反向索引
,是一種檢索方法
。它的設(shè)計(jì)是為了存儲(chǔ)在全文檢索下某個(gè)單詞在一個(gè)文檔貨一組文檔中存儲(chǔ)位置
的映射,是在文件檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu)。也就是我們提供具體的內(nèi)容實(shí)例,根據(jù)內(nèi)容來查詢?cè)搩?nèi)容所處的位置。
如何在廣告系統(tǒng)中使用倒排索引?
核心用途是對(duì)各個(gè)維度 限制的
整理
。
如圖中所示,我們希望找到西安市的所有的推廣單元信息,那么我們只需要根據(jù)陜西省-西安市
來進(jìn)行索引,可以快速定位到所在的推廣單元有10,11
兩個(gè)。
索引的維護(hù)最主要的是為了保證檢索服務(wù)中的索引是完整的,我們?cè)诰S護(hù)索引數(shù)據(jù)的時(shí)候,有兩種場(chǎng)景會(huì)帶來廣告數(shù)據(jù)。在系統(tǒng)啟動(dòng)之初,會(huì)有一部分初始化數(shù)據(jù),在系統(tǒng)上線運(yùn)行之后,會(huì)逐漸有不少新的廣告信息加入。因此,我們的廣告索引類型整體可以分為兩大類:
檢索系統(tǒng)在每次啟動(dòng)的時(shí)候,需要一次性讀取當(dāng)前數(shù)據(jù)庫中的所有數(shù)據(jù),建立索引。
TIPS:(這里有一個(gè)問題,如果我們系統(tǒng)流量高的時(shí)候,需要部署多實(shí)例,每一個(gè)實(shí)例在系統(tǒng)啟動(dòng)的時(shí)候,都直接從數(shù)據(jù)庫中加載全量索引,會(huì)對(duì)數(shù)據(jù)庫造成極大的壓力。)
因此,通常我們實(shí)現(xiàn)全量索引都是通過讀取文件中預(yù)先存儲(chǔ)的廣告數(shù)據(jù)來實(shí)現(xiàn)全量索引導(dǎo)入。
顧名思義就是后來新增的數(shù)據(jù)索引。系統(tǒng)在運(yùn)行過程中,會(huì)對(duì)數(shù)據(jù)庫的變動(dòng)進(jìn)行監(jiān)控,實(shí)現(xiàn)加載更新,構(gòu)建索引,我們系統(tǒng)中通過對(duì)數(shù)據(jù)庫表的CRUD操作的變動(dòng),通過監(jiān)聽Binlog來實(shí)現(xiàn)增量索引的更新。