在我們廣告系統(tǒng)中,為了我們能更快的拿到我們想要的廣告數據,我們需要對廣告數據添加類似于數據庫index一樣的索引結構,分兩大類:正向索引
和倒排索引
。
通過唯一鍵/主鍵生成與對象的映射關系。
比如,我們從數據庫中查詢數據的時候,根據數據主鍵ID查詢當前記錄,其實就是一個正向索引的過程。
根據這個描述,很明顯,我們的正向索引適用于推廣計劃
,推廣單元
和創(chuàng)意
這幾張表的數據上,因為廣告檢索的請求信息,不可能是請求具體的計劃
或推廣單元
,它的檢索請求一定是限制條件。
也叫
反向索引
,是一種檢索方法
。它的設計是為了存儲在全文檢索下某個單詞在一個文檔貨一組文檔中存儲位置
的映射,是在文件檢索系統(tǒng)中最常用的數據結構。也就是我們提供具體的內容實例,根據內容來查詢該內容所處的位置。
如何在廣告系統(tǒng)中使用倒排索引?
核心用途是對各個維度 限制的
整理
。
如圖中所示,我們希望找到西安市的所有的推廣單元信息,那么我們只需要根據陜西省-西安市
來進行索引,可以快速定位到所在的推廣單元有10,11
兩個。
索引的維護最主要的是為了保證檢索服務中的索引是完整的,我們在維護索引數據的時候,有兩種場景會帶來廣告數據。在系統(tǒng)啟動之初,會有一部分初始化數據,在系統(tǒng)上線運行之后,會逐漸有不少新的廣告信息加入。因此,我們的廣告索引類型整體可以分為兩大類:
檢索系統(tǒng)在每次啟動的時候,需要一次性讀取當前數據庫中的所有數據,建立索引。
TIPS:(這里有一個問題,如果我們系統(tǒng)流量高的時候,需要部署多實例,每一個實例在系統(tǒng)啟動的時候,都直接從數據庫中加載全量索引,會對數據庫造成極大的壓力。)
因此,通常我們實現全量索引都是通過讀取文件中預先存儲的廣告數據來實現全量索引導入。
顧名思義就是后來新增的數據索引。系統(tǒng)在運行過程中,會對數據庫的變動進行監(jiān)控,實現加載更新,構建索引,我們系統(tǒng)中通過對數據庫表的CRUD操作的變動,通過監(jiān)聽Binlog來實現增量索引的更新。
創(chuàng)新互聯www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。