在咱們廣告系統中,爲了咱們能更快的拿到咱們想要的廣告數據,咱們須要對廣告數據添加相似於數據庫index同樣的索引結構,分兩大類:正向索引
和倒排索引
。數據庫
經過惟一鍵/主鍵生成與對象的映射關係。數據結構
好比,咱們從數據庫中查詢數據的時候,根據數據主鍵ID查詢當前記錄,其實就是一個正向索引的過程。設計
根據這個描述,很明顯,咱們的正向索引適用於推廣計劃
,推廣單元
和 創意
這幾張表的數據上,由於廣告檢索的請求信息,不多是請求具體的計劃
或推廣單元
,它的檢索請求必定是限制條件。code
也叫
反向索引
,是一種*檢索方法
*。它的設計是爲了存儲在全文檢索下某個單詞在一個文檔貨一組文檔中存儲位置
的映射,是在文件檢索系統中最經常使用的數據結構。對象也就是咱們提供具體的內容實例,根據內容來查詢該內容所處的位置。索引
如何在廣告系統中使用倒排索引?文檔
核心用途是對各個維度 限制的
整理
。部署
如圖中所示,咱們但願找到西安市的全部的推廣單元信息,那麼咱們只須要根據陝西省-西安市
來進行索引,能夠快速定位到所在的推廣單元有10,11
兩個。監控
索引的維護最主要的是爲了保證檢索服務中的索引是完整的,咱們在維護索引數據的時候,有兩種場景會帶來廣告數據。在系統啓動之初,會有一部分初始化數據,在系統上線運行以後,會逐漸有很多新的廣告信息加入。所以,咱們的廣告索引類型總體能夠分爲兩大類:請求
檢索系統在每次啓動的時候,須要一次性讀取當前數據庫中的全部數據,創建索引。
TIPS:(這裏有一個問題,若是咱們系統流量高的時候,須要部署多實例,每個實例在系統啓動的時候,都直接從數據庫中加載全量索引,會對數據庫形成極大的壓力。)
所以,一般咱們實現全量索引都是經過讀取文件中預先存儲的廣告數據來實現全量索引導入。
顧名思義就是後來新增的數據索引。系統在運行過程當中,會對數據庫的變更進行監控,實現加載更新,構建索引,咱們系統中經過對數據庫表的CRUD操做的變更,經過監聽Binlog來實現增量索引的更新。