專利名稱:一種移動(dòng)終端信息推送方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息推送領(lǐng)域,尤其涉及一種移動(dòng)終端信息推送方法及裝置。
背景技術(shù):
無線廣告是網(wǎng)絡(luò)廣告的一種新型的發(fā)展趨勢,它是以針對(duì)手機(jī)用戶的一種網(wǎng)絡(luò)營銷形式,無線廣告以推動(dòng)企業(yè)產(chǎn)品和服務(wù)為目的,以中國6億手機(jī)用戶為營銷對(duì)象,以手機(jī)短信、彩信和WAP作為信息載體,利用手機(jī)的即時(shí)性、隨身性、個(gè)人性和私密性等特點(diǎn),進(jìn)行精確、互動(dòng)、無處不在的廣告營銷模式,它是繼電視、廣播、報(bào)紙、互聯(lián)網(wǎng)之后的第五大媒體?,F(xiàn)有的無線廣告推送系統(tǒng)的邏輯一般是:從持久化存儲(chǔ)的數(shù)據(jù)庫獲取所有的廣告及其屬性,并存儲(chǔ)在內(nèi)存或緩存中;解析請(qǐng)求數(shù)據(jù),生成一系列精準(zhǔn)檢索條件(如手機(jī)制造商、應(yīng)用分類、當(dāng)前手機(jī)的服務(wù)運(yùn)營商、用戶年齡、性別、地域、廣告位所支持的廣告素材等);遍歷緩存中的每條廣告,對(duì)其屬性一一判斷是否匹配,并生成一個(gè)排序的廣告列表;從廣告列表中選取最滿足條件的一條廣告來完成推送。由此不難看出,在現(xiàn)有的移動(dòng)終端信息推送過程中,尤其是無線廣告的推送過程中,信息的檢索時(shí)間與信息的數(shù)據(jù)量成正比,當(dāng)信息數(shù)據(jù)比較多時(shí),從中檢索一個(gè)與請(qǐng)求數(shù)據(jù)相匹配的信息時(shí),所用的時(shí)間比較長。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是在現(xiàn)有的移動(dòng)終端信息推送過程中,信息的檢索時(shí)間與信息的數(shù)據(jù)量成正比,當(dāng)信息數(shù)據(jù)比較多時(shí),從中檢索一個(gè)與請(qǐng)求數(shù)據(jù)相匹配的信息時(shí),所用的時(shí)間比較長,為達(dá)到快速檢索并推送信息的目的,本發(fā)明提供一種移動(dòng)終端信息推送方法,包括:獲取信息列表中所有的信息數(shù)據(jù),對(duì)所述信息數(shù)據(jù)按字段的屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的 倒排索引;接收到客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),解析所述請(qǐng)求數(shù)據(jù),生成一系列檢索條件,遍歷每個(gè)檢索條件,以檢索條件為屬性值,從所述倒排索引中讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表;根據(jù)檢索條件之間的邏輯關(guān)系,將所述每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足所述請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給所述客戶端。一種移動(dòng)終端信息推送裝置,包括:倒排索引單元,用于獲取信息列表中所有的信息數(shù)據(jù),對(duì)所述信息數(shù)據(jù)按字段的屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的倒排索引;解析配對(duì)單元,用于接收到客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),解析所述請(qǐng)求數(shù)據(jù),生成一系列檢索條件,遍歷每個(gè)檢索條件,以檢索條件為屬性值,從所述倒排索引中讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表;排序推送單元,用于根據(jù)檢索條件之間的邏輯關(guān)系,將所述每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足所述請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給所述客戶端。本發(fā)明的有益效果為:一種移動(dòng)終端信息推送方法及裝置,本發(fā)明通過建立信息數(shù)據(jù)的屬性值到信息列表的倒排索引,倒排索引中的每一項(xiàng)都包括一個(gè)屬性值和具有該屬性值的各信息數(shù)據(jù)的位置,不是由信息數(shù)據(jù)來確定屬性值,而是由屬性值來確定信息數(shù)據(jù)的位置,能加快信息推送處理速度,尤其是當(dāng)信息數(shù)據(jù)量比較大時(shí),本發(fā)明會(huì)極大的加快推送速度;建立倒排索引后,也加快了多個(gè)維度的屬性值之間的運(yùn)算速度,有利于建立更復(fù)雜的模型來進(jìn)行信息的推送。
圖1是本發(fā)明移動(dòng)終端信息推送方法流程圖;圖2是本發(fā)明移動(dòng)終端信息推送裝置第一實(shí)施例框圖;圖3是本發(fā)明移動(dòng)終端信息推送裝置第二實(shí)施例框圖;圖4是本發(fā)明移動(dòng)終端信息推送裝置中動(dòng)態(tài)更新單元實(shí)施例框圖。
具體實(shí)施例方式下面將結(jié)合圖1至圖4并通過具體實(shí)施方式
來進(jìn)一步說明本發(fā)明的技術(shù)方案。如圖1所示,一種移動(dòng)終端 信息推送方法,包括:步驟101,做好準(zhǔn)備工作并開始。步驟102,獲取信息列表中所有的信息數(shù)據(jù),并暫存在內(nèi)存中,對(duì)所述信息數(shù)據(jù)按字段的屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的倒排索引;其中,所述信息數(shù)據(jù)預(yù)存儲(chǔ)于一持久化的數(shù)據(jù)庫中;在本實(shí)施例中,所述信息指的是無線廣告,倒排索引中的每一項(xiàng)都包括一個(gè)屬性值和具有該屬性值的各廣告數(shù)據(jù)的位置,由于不是由廣告數(shù)據(jù)來確定屬性值,而是由屬性值來確定廣告數(shù)據(jù)的位置,因而成為倒排索引;步驟103,接收到客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),解析所述請(qǐng)求數(shù)據(jù),生成一系列檢索條件,遍歷每個(gè)檢索條件,以檢索條件為屬性值,從所述倒排索引中直接讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表;其中的檢索條件包括手機(jī)制造商、應(yīng)用分類、當(dāng)前手機(jī)的服務(wù)運(yùn)營商、用戶年齡、性別、地域、廣告位所支持的廣告素材等;步驟104,根據(jù)檢索條件之間的邏輯關(guān)系,比如與、或、非,將所述每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足所述請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給所述客戶端,可以選擇最符合請(qǐng)求數(shù)據(jù)的一條信息,也可以從該排序信息列表中選擇多條信息發(fā)送給客戶端。步驟105,結(jié)束。在本實(shí)施例中,倒排索引采用哈希表來實(shí)現(xiàn),對(duì)所述哈希表的每個(gè)桶進(jìn)行細(xì)粒度加鎖,當(dāng)哈希表的某個(gè)桶有寫操作時(shí),其他桶還可以進(jìn)行讀數(shù)據(jù)操作,本發(fā)明采用細(xì)粒度加鎖,增加了倒排索引的伸縮性和并發(fā)性,更有益于倒排索引的實(shí)時(shí)操作。由于持久化數(shù)據(jù)庫中的信息數(shù)據(jù)時(shí)動(dòng)態(tài)更新的,因此當(dāng)數(shù)據(jù)庫中的信息有新增或修改時(shí),倒排索引需要同步更新,這時(shí)需要清除掉倒排索引中的舊的信息數(shù)據(jù),并將新的信息數(shù)據(jù)添加進(jìn)去,由于數(shù)據(jù)庫中的信息數(shù)據(jù)通常只有少數(shù)幾條需要更新,這種情況下,如果要將所有信息數(shù)據(jù)清除,然后重新獲取信息數(shù)據(jù)來建立新的倒排索引,比較耗費(fèi)時(shí)間,因此提出一種主索引和/或增量索引的索引更新機(jī)制。還包括基于主索引和/或增量索引的動(dòng)態(tài)更新機(jī)制對(duì)所述倒排索引進(jìn)行更新,具體為:主索引更新:每天在預(yù)定時(shí)刻用定時(shí)器定時(shí)更新倒排索引,采用雙緩存模式對(duì)所有的信息數(shù)據(jù)全部重新建立倒排索引;預(yù)定時(shí)刻可以自由設(shè)定,比如可以選擇系統(tǒng)比較空閑的凌晨。增量索引更新:當(dāng)在預(yù)定時(shí)刻外的其他時(shí)刻有信息數(shù)據(jù)更新時(shí),由于信息數(shù)據(jù)量比較少,采用直接更新當(dāng)前服務(wù)器緩存數(shù)據(jù)的方式進(jìn)行索引更新,在增量索引更新過程中,對(duì)需要更新的信息數(shù)據(jù)進(jìn)行加鎖,其他的信息數(shù)據(jù)還可以繼續(xù)對(duì)外提供服務(wù)。主索引更新 方式可以一次性將所有的數(shù)據(jù)全部更新,可將倒排索引中的臟數(shù)據(jù)全部清除或修改,增量索引更新方式可以只更新有變動(dòng)的數(shù)據(jù),主索引和/或增量索引的索引更新機(jī)制也加快了索引更新時(shí)間,使索引更新處理更加穩(wěn)定,并在索引更新過程中不影響正常的檢索。在本實(shí)施例中,增量索引更新的過程分為兩步:一是清理舊數(shù)據(jù),而是更新為新數(shù)據(jù),由于舊數(shù)據(jù)中大部分是有效數(shù)據(jù),因此只需要清理要被更新的舊數(shù)據(jù)。在本實(shí)施例中,雙緩存模式具體為:利用第一緩存存放主索引更新前的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成前,使用該緩存對(duì)外提供檢索服務(wù),依賴于該緩存的主索引數(shù)據(jù)進(jìn)行信息檢索和投放;利用第二緩存存放更新后的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成,并可以成功對(duì)外提供信息檢索服務(wù)時(shí),從第一緩存切換到第二緩存對(duì)外提供檢索服務(wù)。采用雙緩存模式更新主索引,可以保證讀、寫分別位于兩個(gè)緩存中,這樣在寫的過程中,不會(huì)影響到讀,只有在寫結(jié)束以后,才做緩存切換,這種方式下即時(shí)更新主索引的時(shí)間較長,也不影響倒排索引對(duì)外提供信息檢索服務(wù),增加了系統(tǒng)穩(wěn)定性和實(shí)時(shí)性。與本發(fā)明實(shí)施例的方法相對(duì)應(yīng),本發(fā)明還提供了一種移動(dòng)終端信息推送裝置,如圖2所示,一種移動(dòng)終端信息推送裝置200,包括:倒排索引單元210,用于從持久化數(shù)據(jù)庫中獲取信息列表中所有的信息數(shù)據(jù),并暫存在內(nèi)存中,對(duì)所述信息數(shù)據(jù)按字段的屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的倒排索引;倒排索引中的每一項(xiàng)都包括一個(gè)屬性值和具有該屬性值的各信息數(shù)據(jù)的位置,由于不是由信息數(shù)據(jù)來確定屬性值,而是由屬性值來確定信息數(shù)據(jù)的位置,因而成為倒排索弓I ;解析配對(duì)單元220,用于接收到客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),解析所述請(qǐng)求數(shù)據(jù),生成一系列檢索條件,遍歷每個(gè)檢索條件,以檢索條件為屬性值,從所述倒排索引中直接讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表;其中的檢索條件包括手機(jī)制造商、應(yīng)用分類、當(dāng)前手機(jī)的服務(wù)運(yùn)營商、用戶年齡、性別、地域、廣告位所支持的廣告素材等;排序推送單元230,用于根據(jù)檢索條件之間的邏輯關(guān)系,比如與、或、非,將所述每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足所述請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給所述客戶端,可以選擇最符合請(qǐng)求數(shù)據(jù)的一條信息,也可以從該排序信息列表中選擇多條信息發(fā)送給客戶端。如圖3所示,作為本發(fā)明第二實(shí)施例,移動(dòng)終端信息推送裝置200還包括加鎖單元240,用于采用哈希表來實(shí)現(xiàn)倒排索引,對(duì)所述哈希表的每個(gè)桶進(jìn)行細(xì)粒度加鎖。由于持久化數(shù)據(jù)庫中的信息數(shù)據(jù)時(shí)動(dòng)態(tài)更新的,因此當(dāng)數(shù)據(jù)庫中的信息有新增或修改時(shí),倒排索引需要同步更新,這時(shí)需要清除掉倒排索引中的舊的信息數(shù)據(jù),并將新的信息數(shù)據(jù)添加進(jìn)去,由于數(shù)據(jù)庫中的信息數(shù)據(jù)通常只有少數(shù)幾條需要更新,這種情況下,如果要將所有信息數(shù)據(jù)清除,然后重新獲取信息數(shù)據(jù)來建立新的倒排索引,比較耗費(fèi)時(shí)間,因此提出一種主索引和/或增量索引的索引更新機(jī)制。如圖3所示,作為本發(fā)明第二實(shí)施例,移動(dòng)終端信息推送裝置200還包括動(dòng)態(tài)更新單元260,用于基于主索引和/或增量索引的動(dòng)態(tài)更新機(jī)制對(duì)所述倒排索引進(jìn)行更新,具體包括:主索引更新單元261,用于每天在預(yù)定時(shí)刻更新倒排索引,采用雙緩存模式對(duì)所有的信息數(shù)據(jù)全部重新建立倒排索引;預(yù)定時(shí)刻可以自由設(shè)定,比如可以選擇系統(tǒng)比較空閑的凌晨;增量索引更新單元262,用于當(dāng)在預(yù)定時(shí)刻外的其他時(shí)刻有信息數(shù)據(jù)更新時(shí),由于信息數(shù)據(jù)量比較少,采用直接更新當(dāng)前服務(wù)器緩存數(shù)據(jù)的方式進(jìn)行索引更新,在增量索引更新過程中,對(duì)需要更新的信息數(shù)據(jù)進(jìn)行加鎖,其他的信息數(shù)據(jù)還可以繼續(xù)對(duì)外提供服務(wù)。在本實(shí)施例中,增量索引更新的過程分為兩步:一是清理舊數(shù)據(jù),而是更新為新數(shù)據(jù),由于舊數(shù)據(jù)中 大部分是有效數(shù)據(jù),因此只需要清理要被更新的舊數(shù)據(jù)。如圖4所示,移動(dòng)終端信息推送裝置200的動(dòng)態(tài)更新單元260還包括雙緩存單元263,用于利用第一緩存存放主索引更新前的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成前,使用該緩存對(duì)外提供檢索服務(wù),依賴于該緩存的主索引數(shù)據(jù)進(jìn)行信息檢索和投放;利用第二緩存存放更新后的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成,并可以成功對(duì)外提供信息檢索服務(wù)時(shí),從第一緩存切換到第二緩存對(duì)外提供檢索服務(wù)。以上所述僅為本發(fā)明的具體實(shí)施方式
,這些描述只是為了解釋本發(fā)明的原理,而不能以任何方式解釋為對(duì)本發(fā)明保護(hù)范圍的限制?;诖颂幍慕忉專绢I(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動(dòng)即可聯(lián)想到本發(fā)明的其它具體實(shí)施方式
,這些方式都將落入本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種移動(dòng)終端信息推送方法,其特征在于,包括: 獲取信息列表中所有的信息數(shù)據(jù),對(duì)所述信息數(shù)據(jù)按字段的屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的倒排索引; 接收到客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),解析所述請(qǐng)求數(shù)據(jù),生成一系列檢索條件,遍歷每個(gè)檢索條件,以檢索條件為屬性值,從所述倒排索引中讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表; 根據(jù)檢索條件之間的邏輯關(guān)系,將所述每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足所述請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給所述客戶端。
2.根據(jù)權(quán)利要求1所述的一種移動(dòng)終端信息推送方法,其特征在于,所述倒排索引采用哈希表來實(shí)現(xiàn),對(duì)所述哈希表的每個(gè)桶進(jìn)行細(xì)粒度加鎖。
3.根據(jù)權(quán)利要求1所述的一種移動(dòng)終端信息推送方法,其特征在于,還包括基于主索引和/或增量索引的動(dòng)態(tài)更新機(jī)制對(duì)所述倒排索引進(jìn)行更新,具體為: 主索引更新:每天在預(yù)定時(shí)刻更新倒排索引,采用雙緩存模式對(duì)所有的信息數(shù)據(jù)全部重新建立倒排索引; 增量索引更新:當(dāng)在預(yù)定時(shí)刻外的其他時(shí)刻有信息數(shù)據(jù)更新時(shí),采用直接更新當(dāng)前服務(wù)器緩存數(shù)據(jù)的方式進(jìn)行索引更新,在增量索引更新過程中,對(duì)需要更新的信息數(shù)據(jù)進(jìn)行加鎖。
4.根據(jù)權(quán)利要求3所述的一種移動(dòng)終端信息推送方法,其特征在于,所述雙緩存模式具體為:利用第一緩存存放主索引更新前的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成前,使用該緩存對(duì)外提供檢索服務(wù),依賴于該緩存的主索引數(shù)據(jù)進(jìn)行信息檢索和投放;利用第二緩存存放更新 后的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成,并可以成功對(duì)外提供信息檢索服務(wù)時(shí),從第一緩存切換到第二緩存對(duì)外提供檢索服務(wù)。
5.一種移動(dòng)終端信息推送裝置,其特征在于,包括: 倒排索引單元,用于獲取信息列表中所有的信息數(shù)據(jù),對(duì)所述信息數(shù)據(jù)按字段的屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的倒排索引; 解析配對(duì)單元,用于接收到客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),解析所述請(qǐng)求數(shù)據(jù),生成一系列檢索條件,遍歷每個(gè)檢索條件,以檢索條件為屬性值,從所述倒排索引中讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表; 排序推送單元,用于根據(jù)檢索條件之間的邏輯關(guān)系,將所述每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足所述請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給所述客戶端。
6.根據(jù)權(quán)利要求5所述的一種移動(dòng)終端信息推送裝置,其特征在于,還包括加鎖單元,用于采用哈希表來實(shí)現(xiàn)倒排索引,對(duì)所述哈希表的每個(gè)桶進(jìn)行細(xì)粒度加鎖。
7.根據(jù)權(quán)利要求5所述的一種移動(dòng)終端信息推送裝置,其特征在于,還包括動(dòng)態(tài)更新單元,用于基于主索引和/或增量索引的動(dòng)態(tài)更新機(jī)制對(duì)所述倒排索引進(jìn)行更新,具體包括: 主索引更新單元,用于每天在預(yù)定時(shí)刻更新倒排索引,采用雙緩存模式對(duì)所有的信息數(shù)據(jù)全部重新建立倒排索引; 增量索引更新單元,用于當(dāng)在預(yù)定時(shí)刻外的其他時(shí)刻有信息數(shù)據(jù)更新時(shí),采用直接更新當(dāng)前服務(wù)器緩存數(shù)據(jù)的方式進(jìn)行索引更新,在增量索引更新過程中,對(duì)需要更新的信息數(shù)據(jù)進(jìn)行加鎖。
8.根據(jù)權(quán)利要求7所述的一種移動(dòng)終端信息推送裝置,其特征在于,所述動(dòng)態(tài)更新單元還包括雙緩存單元,用于利用第一緩存存放主索引更新前的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成前,使用該緩存對(duì)外提供檢索服務(wù),依賴于該緩存的主索引數(shù)據(jù)進(jìn)行信息檢索和投放;利用第二緩存存放更新后的信息數(shù)據(jù),當(dāng)所有的主索引數(shù)據(jù)都更新完成,并可以成功對(duì)外提供信息檢 索服務(wù)時(shí),從第一緩存切換到第二緩存對(duì)外提供檢索服務(wù)。
全文摘要
本發(fā)明涉及信息推送領(lǐng)域,尤其涉及一種移動(dòng)終端信息推送方法及裝置,該方法包括獲取信息列表中所有的信息數(shù)據(jù),對(duì)信息數(shù)據(jù)按屬性值進(jìn)行分拆,建立每個(gè)屬性值到信息列表的倒排索引;解析所接收到的客戶端發(fā)送的申請(qǐng)信息的請(qǐng)求數(shù)據(jù),生成一系列檢索條件,從倒排索引中讀取每個(gè)檢索條件對(duì)應(yīng)的信息列表;根據(jù)檢索條件之間的邏輯關(guān)系,將每個(gè)檢索條件對(duì)應(yīng)的信息列表進(jìn)行排序,生成滿足請(qǐng)求數(shù)據(jù)的排序信息列表,將該排序信息列表發(fā)送給客戶端。本發(fā)明加快了信息推送處理速度,尤其是當(dāng)信息數(shù)據(jù)量比較大時(shí),本發(fā)明會(huì)極大的加快推送速度;建立倒排索引后,也加快了多個(gè)維度的屬性值之間的運(yùn)算速度,有利于建立更復(fù)雜的模型來進(jìn)行信息的推送。
文檔編號(hào)G06Q30/02GK103218445SQ20131014217
公開日2013年7月24日 申請(qǐng)日期2013年4月22日 優(yōu)先權(quán)日2013年4月22日
發(fā)明者劉曉佳, 羅峰, 黃蘇支, 李娜 申請(qǐng)人:億贊普(北京)科技有限公司