摘要:索引設計介紹在我們廣告系統(tǒng)中,為了我們能更快的拿到我們想要的廣告數(shù)據(jù),我們需要對廣告數(shù)據(jù)添加類似于數(shù)據(jù)庫一樣的索引結(jié)構(gòu),分兩大類正向索引和倒排索引。如何在廣告系統(tǒng)中使用倒排索引核心用途是對各個維度限制的整理。
在我們廣告系統(tǒng)中,為了我們能更快的拿到我們想要的廣告數(shù)據(jù),我們需要對廣告數(shù)據(jù)添加類似于數(shù)據(jù)庫index一樣的索引結(jié)構(gòu),分兩大類:正向索引和倒排索引。
通過唯一鍵/主鍵生成與對象的映射關系。比如,我們從數(shù)據(jù)庫中查詢數(shù)據(jù)的時候,根據(jù)數(shù)據(jù)主鍵ID查詢當前記錄,其實就是一個正向索引的過程。
根據(jù)這個描述,很明顯,我們的正向索引適用于推廣計劃,推廣單元 和 創(chuàng)意這幾張表的數(shù)據(jù)上,因為廣告檢索的請求信息,不可能是請求具體的計劃或推廣單元,它的檢索請求一定是限制條件。
也叫反向索引,是一種檢索方法。它的設計是為了存儲在全文檢索下某個單詞在一個文檔貨一組文檔中存儲位置的映射,是在文件檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu)。也就是我們提供具體的內(nèi)容實例,根據(jù)內(nèi)容來查詢該內(nèi)容所處的位置。
如何在廣告系統(tǒng)中使用倒排索引?
核心用途是對各個維度 限制的整理。
如圖中所示,我們希望找到西安市的所有的推廣單元信息,那么我們只需要根據(jù)陜西省-西安市來進行索引,可以快速定位到所在的推廣單元有10,11兩個。
索引的維護最主要的是為了保證檢索服務中的索引是完整的,我們在維護索引數(shù)據(jù)的時候,有兩種場景會帶來廣告數(shù)據(jù)。在系統(tǒng)啟動之初,會有一部分初始化數(shù)據(jù),在系統(tǒng)上線運行之后,會逐漸有不少新的廣告信息加入。因此,我們的廣告索引類型整體可以分為兩大類:
檢索系統(tǒng)在每次啟動的時候,需要一次性讀取當前數(shù)據(jù)庫中的所有數(shù)據(jù),建立索引。TIPS:(這里有一個問題,如果我們系統(tǒng)流量高的時候,需要部署多實例,每一個實例在系統(tǒng)啟動的時候,都直接從數(shù)據(jù)庫中加載全量索引,會對數(shù)據(jù)庫造成極大的壓力。)
因此,通常我們實現(xiàn)全量索引都是通過讀取文件中預先存儲的廣告數(shù)據(jù)來實現(xiàn)全量索引導入。
顧名思義就是后來新增的數(shù)據(jù)索引。系統(tǒng)在運行過程中,會對數(shù)據(jù)庫的變動進行監(jiān)控,實現(xiàn)加載更新,構(gòu)建索引,我們系統(tǒng)中通過對數(shù)據(jù)庫表的CRUD操作的變動,通過監(jiān)聽Binlog來實現(xiàn)增量索引的更新。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/75913.html
摘要:上一節(jié)我們分析了廣告索引的維護有種,全量索引加載和增量索引維護。因為廣告檢索是廣告系統(tǒng)中最為重要的環(huán)節(jié),大家一定要認真理解我們索引設計的思路,接下來我們來編碼實現(xiàn)索引維護功能。 上一節(jié)我們分析了廣告索引的維護有2種,全量索引加載和增量索引維護。因為廣告檢索是廣告系統(tǒng)中最為重要的環(huán)節(jié),大家一定要認真理解我們索引設計的思路,接下來我們來編碼實現(xiàn)索引維護功能。 我們來定義一個接口,來接收所有...
摘要:在前面的過程中,我們創(chuàng)建了個服務發(fā)現(xiàn)我們使用作為服務發(fā)現(xiàn)組件,學習了的使用。加依賴加注解改配置使用項目三部曲,我們可以快速添加一個新組件,并正常使用這個我沒有在項目中實現(xiàn),但是大家可以和一樣,三部曲搞定。 在前面的過程中,我們創(chuàng)建了4個project: 服務發(fā)現(xiàn) 我們使用Eureka 作為服務發(fā)現(xiàn)組件,學習了Eureka Server,Eureka Client的使用。 Eureka...
摘要:各個表數(shù)據(jù)的存儲文件名定義索引對象導出的字段信息依然用為例。通用處理索引類索引之間存在層級劃分,也就是相互之間擁有依賴關系的劃分加載全量索引其實是增量索引添加的一種特殊實現(xiàn)若初實現(xiàn)廣告推廣計劃的第二層級索引實現(xiàn)。 上一節(jié)我們實現(xiàn)了索引基本操作的類以及索引緩存工具類,本小節(jié)我們開始實現(xiàn)加載全量索引數(shù)據(jù),在加載全量索引數(shù)據(jù)之前,我們需要先將數(shù)據(jù)庫中的表數(shù)據(jù)導出到一份文件中。Lets cod...
摘要:工作流程項目依賴監(jiān)控面板引入服務調(diào)用的組件依賴引入服務消費者的依賴數(shù)據(jù)庫鏈接依賴工具類集合類操作日志監(jiān)聽解析開源工具類庫中的配置相關依賴圖片壓縮 工作流程 showImg(https://i.loli.net/2019/07/29/5d3ee1829df4d57461.png); 項目依賴 org.springframewo...
摘要:在使用調(diào)用廣告投放系統(tǒng)之前,我們需要先創(chuàng)建個對象,數(shù)據(jù)請求對象請求響應結(jié)果反序列化對象在啟動類中,添加客戶端。注冊讓在調(diào)用服務的時候,可以實現(xiàn)負載均衡創(chuàng)建一個,來測試調(diào)用廣告提供系統(tǒng)的若初注入 在使用Ribbon調(diào)用廣告投放系統(tǒng)API之前,我們需要先創(chuàng)建2個VO對象,AdPlanVO,AdPlanGetRequestVO. //數(shù)據(jù)請求對象 @Data @NoArgsConstruct...
閱讀 2132·2023-04-26 02:15
閱讀 2358·2021-11-19 09:40
閱讀 1124·2021-10-27 14:13
閱讀 3402·2021-08-23 09:44
閱讀 3704·2019-12-27 12:24
閱讀 706·2019-08-30 15:53
閱讀 1233·2019-08-30 10:53
閱讀 2228·2019-08-26 12:14