CN103218445A - 一种移动终端信息推送方法及装置 - Google Patents
一种移动终端信息推送方法及装置 Download PDFInfo
- Publication number
- CN103218445A CN103218445A CN2013101421732A CN201310142173A CN103218445A CN 103218445 A CN103218445 A CN 103218445A CN 2013101421732 A CN2013101421732 A CN 2013101421732A CN 201310142173 A CN201310142173 A CN 201310142173A CN 103218445 A CN103218445 A CN 103218445A
- Authority
- CN
- China
- Prior art keywords
- information
- index
- data
- mobile terminal
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及信息推送领域,尤其涉及一种移动终端信息推送方法及装置,该方法包括:获取信息列表中所有的信息数据,对信息数据按属性值进行分拆,建立每个属性值到信息列表的倒排索引;解析所接收到的客户端发送的申请信息的请求数据,生成一系列检索条件,从倒排索引中读取每个检索条件对应的信息列表;根据检索条件之间的逻辑关系,将每个检索条件对应的信息列表进行排序,生成满足请求数据的排序信息列表,将该排序信息列表发送给客户端。本发明加快了信息推送处理速度,尤其是当信息数据量比较大时,本发明会极大的加快推送速度;建立倒排索引后,也加快了多个维度的属性值之间的运算速度,有利于建立更复杂的模型来进行信息的推送。
Description
技术领域
本发明涉及信息推送领域,尤其涉及一种移动终端信息推送方法及装置。
背景技术
无线广告是网络广告的一种新型的发展趋势,它是以针对手机用户的一种网络营销形式,无线广告以推动企业产品和服务为目的,以中国6亿手机用户为营销对象,以手机短信、彩信和WAP作为信息载体,利用手机的即时性、随身性、个人性和私密性等特点,进行精确、互动、无处不在的广告营销模式,它是继电视、广播、报纸、互联网之后的第五大媒体。现有的无线广告推送系统的逻辑一般是:从持久化存储的数据库获取所有的广告及其属性,并存储在内存或缓存中;解析请求数据,生成一系列精准检索条件(如手机制造商、应用分类、当前手机的服务运营商、用户年龄、性别、地域、广告位所支持的广告素材等);遍历缓存中的每条广告,对其属性一一判断是否匹配,并生成一个排序的广告列表;从广告列表中选取最满足条件的一条广告来完成推送。由此不难看出,在现有的移动终端信息推送过程中,尤其是无线广告的推送过程中,信息的检索时间与信息的数据量成正比,当信息数据比较多时,从中检索一个与请求数据相匹配的信息时,所用的时间比较长。
发明内容
本发明解决的技术问题是在现有的移动终端信息推送过程中,信息的检索时间与信息的数据量成正比,当信息数据比较多时,从中检索一个与请求数据相匹配的信息时,所用的时间比较长,为达到快速检索并推送信息的目的,本发明提供一种移动终端信息推送方法,包括:
获取信息列表中所有的信息数据,对所述信息数据按字段的属性值进行分拆,建立每个属性值到信息列表的倒排索引;
接收到客户端发送的申请信息的请求数据,解析所述请求数据,生成一系列检索条件,遍历每个检索条件,以检索条件为属性值,从所述倒排索引中读取每个检索条件对应的信息列表;
根据检索条件之间的逻辑关系,将所述每个检索条件对应的信息列表进行排序,生成满足所述请求数据的排序信息列表,将该排序信息列表发送给所述客户端。
一种移动终端信息推送装置,包括:
倒排索引单元,用于获取信息列表中所有的信息数据,对所述信息数据按字段的属性值进行分拆,建立每个属性值到信息列表的倒排索引;
解析配对单元,用于接收到客户端发送的申请信息的请求数据,解析所述请求数据,生成一系列检索条件,遍历每个检索条件,以检索条件为属性值,从所述倒排索引中读取每个检索条件对应的信息列表;
排序推送单元,用于根据检索条件之间的逻辑关系,将所述每个检索条件对应的信息列表进行排序,生成满足所述请求数据的排序信息列表,将该排序信息列表发送给所述客户端。
本发明的有益效果为:一种移动终端信息推送方法及装置,本发明通过建立信息数据的属性值到信息列表的倒排索引,倒排索引中的每一项都包括一个属性值和具有该属性值的各信息数据的位置,不是由信息数据来确定属性值,而是由属性值来确定信息数据的位置,能加快信息推送处理速度,尤其是当信息数据量比较大时,本发明会极大的加快推送速度;建立倒排索引后,也加快了多个维度的属性值之间的运算速度,有利于建立更复杂的模型来进行信息的推送。
附图说明
图1是本发明移动终端信息推送方法流程图;
图2是本发明移动终端信息推送装置第一实施例框图;
图3是本发明移动终端信息推送装置第二实施例框图;
图4是本发明移动终端信息推送装置中动态更新单元实施例框图。
具体实施方式
下面将结合图1至图4并通过具体实施方式来进一步说明本发明的技术方案。
如图1所示,一种移动终端信息推送方法,包括:
步骤101,做好准备工作并开始。
步骤102,获取信息列表中所有的信息数据,并暂存在内存中,对所述信息数据按字段的属性值进行分拆,建立每个属性值到信息列表的倒排索引;
其中,所述信息数据预存储于一持久化的数据库中;
在本实施例中,所述信息指的是无线广告,倒排索引中的每一项都包括一个属性值和具有该属性值的各广告数据的位置,由于不是由广告数据来确定属性值,而是由属性值来确定广告数据的位置,因而成为倒排索引;
步骤103,接收到客户端发送的申请信息的请求数据,解析所述请求数据,生成一系列检索条件,遍历每个检索条件,以检索条件为属性值,从所述倒排索引中直接读取每个检索条件对应的信息列表;
其中的检索条件包括手机制造商、应用分类、当前手机的服务运营商、用户年龄、性别、地域、广告位所支持的广告素材等;
步骤104,根据检索条件之间的逻辑关系,比如与、或、非,将所述每个检索条件对应的信息列表进行排序,生成满足所述请求数据的排序信息列表,将该排序信息列表发送给所述客户端,可以选择最符合请求数据的一条信息,也可以从该排序信息列表中选择多条信息发送给客户端。
步骤105,结束。
在本实施例中,倒排索引采用哈希表来实现,对所述哈希表的每个桶进行细粒度加锁,当哈希表的某个桶有写操作时,其他桶还可以进行读数据操作,本发明采用细粒度加锁,增加了倒排索引的伸缩性和并发性,更有益于倒排索引的实时操作。
由于持久化数据库中的信息数据时动态更新的,因此当数据库中的信息有新增或修改时,倒排索引需要同步更新,这时需要清除掉倒排索引中的旧的信息数据,并将新的信息数据添加进去,由于数据库中的信息数据通常只有少数几条需要更新,这种情况下,如果要将所有信息数据清除,然后重新获取信息数据来建立新的倒排索引,比较耗费时间,因此提出一种主索引和/或增量索引的索引更新机制。
还包括基于主索引和/或增量索引的动态更新机制对所述倒排索引进行更新,具体为:
主索引更新:每天在预定时刻用定时器定时更新倒排索引,采用双缓存模式对所有的信息数据全部重新建立倒排索引;预定时刻可以自由设定,比如可以选择系统比较空闲的凌晨。
增量索引更新:当在预定时刻外的其他时刻有信息数据更新时,由于信息数据量比较少,采用直接更新当前服务器缓存数据的方式进行索引更新,在增量索引更新过程中,对需要更新的信息数据进行加锁,其他的信息数据还可以继续对外提供服务。
主索引更新方式可以一次性将所有的数据全部更新,可将倒排索引中的脏数据全部清除或修改,增量索引更新方式可以只更新有变动的数据,主索引和/或增量索引的索引更新机制也加快了索引更新时间,使索引更新处理更加稳定,并在索引更新过程中不影响正常的检索。
在本实施例中,增量索引更新的过程分为两步:一是清理旧数据,而是更新为新数据,由于旧数据中大部分是有效数据,因此只需要清理要被更新的旧数据。
在本实施例中,双缓存模式具体为:利用第一缓存存放主索引更新前的信息数据,当所有的主索引数据都更新完成前,使用该缓存对外提供检索服务,依赖于该缓存的主索引数据进行信息检索和投放;利用第二缓存存放更新后的信息数据,当所有的主索引数据都更新完成,并可以成功对外提供信息检索服务时,从第一缓存切换到第二缓存对外提供检索服务。
采用双缓存模式更新主索引,可以保证读、写分别位于两个缓存中,这样在写的过程中,不会影响到读,只有在写结束以后,才做缓存切换,这种方式下即时更新主索引的时间较长,也不影响倒排索引对外提供信息检索服务,增加了系统稳定性和实时性。
与本发明实施例的方法相对应,本发明还提供了一种移动终端信息推送装置,如图2所示,一种移动终端信息推送装置200,包括:
倒排索引单元210,用于从持久化数据库中获取信息列表中所有的信息数据,并暂存在内存中,对所述信息数据按字段的属性值进行分拆,建立每个属性值到信息列表的倒排索引;
倒排索引中的每一项都包括一个属性值和具有该属性值的各信息数据的位置,由于不是由信息数据来确定属性值,而是由属性值来确定信息数据的位置,因而成为倒排索引;
解析配对单元220,用于接收到客户端发送的申请信息的请求数据,解析所述请求数据,生成一系列检索条件,遍历每个检索条件,以检索条件为属性值,从所述倒排索引中直接读取每个检索条件对应的信息列表;
其中的检索条件包括手机制造商、应用分类、当前手机的服务运营商、用户年龄、性别、地域、广告位所支持的广告素材等;
排序推送单元230,用于根据检索条件之间的逻辑关系,比如与、或、非,将所述每个检索条件对应的信息列表进行排序,生成满足所述请求数据的排序信息列表,将该排序信息列表发送给所述客户端,可以选择最符合请求数据的一条信息,也可以从该排序信息列表中选择多条信息发送给客户端。
如图3所示,作为本发明第二实施例,移动终端信息推送装置200还包括加锁单元240,用于采用哈希表来实现倒排索引,对所述哈希表的每个桶进行细粒度加锁。
由于持久化数据库中的信息数据时动态更新的,因此当数据库中的信息有新增或修改时,倒排索引需要同步更新,这时需要清除掉倒排索引中的旧的信息数据,并将新的信息数据添加进去,由于数据库中的信息数据通常只有少数几条需要更新,这种情况下,如果要将所有信息数据清除,然后重新获取信息数据来建立新的倒排索引,比较耗费时间,因此提出一种主索引和/或增量索引的索引更新机制。
如图3所示,作为本发明第二实施例,移动终端信息推送装置200还包括动态更新单元260,用于基于主索引和/或增量索引的动态更新机制对所述倒排索引进行更新,具体包括:
主索引更新单元261,用于每天在预定时刻更新倒排索引,采用双缓存模式对所有的信息数据全部重新建立倒排索引;预定时刻可以自由设定,比如可以选择系统比较空闲的凌晨;
增量索引更新单元262,用于当在预定时刻外的其他时刻有信息数据更新时,由于信息数据量比较少,采用直接更新当前服务器缓存数据的方式进行索引更新,在增量索引更新过程中,对需要更新的信息数据进行加锁,其他的信息数据还可以继续对外提供服务。
在本实施例中,增量索引更新的过程分为两步:一是清理旧数据,而是更新为新数据,由于旧数据中大部分是有效数据,因此只需要清理要被更新的旧数据。
如图4所示,移动终端信息推送装置200的动态更新单元260还包括双缓存单元263,用于利用第一缓存存放主索引更新前的信息数据,当所有的主索引数据都更新完成前,使用该缓存对外提供检索服务,依赖于该缓存的主索引数据进行信息检索和投放;利用第二缓存存放更新后的信息数据,当所有的主索引数据都更新完成,并可以成功对外提供信息检索服务时,从第一缓存切换到第二缓存对外提供检索服务。
以上所述仅为本发明的具体实施方式,这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (8)
1.一种移动终端信息推送方法,其特征在于,包括:
获取信息列表中所有的信息数据,对所述信息数据按字段的属性值进行分拆,建立每个属性值到信息列表的倒排索引;
接收到客户端发送的申请信息的请求数据,解析所述请求数据,生成一系列检索条件,遍历每个检索条件,以检索条件为属性值,从所述倒排索引中读取每个检索条件对应的信息列表;
根据检索条件之间的逻辑关系,将所述每个检索条件对应的信息列表进行排序,生成满足所述请求数据的排序信息列表,将该排序信息列表发送给所述客户端。
2.根据权利要求1所述的一种移动终端信息推送方法,其特征在于,所述倒排索引采用哈希表来实现,对所述哈希表的每个桶进行细粒度加锁。
3.根据权利要求1所述的一种移动终端信息推送方法,其特征在于,还包括基于主索引和/或增量索引的动态更新机制对所述倒排索引进行更新,具体为:
主索引更新:每天在预定时刻更新倒排索引,采用双缓存模式对所有的信息数据全部重新建立倒排索引;
增量索引更新:当在预定时刻外的其他时刻有信息数据更新时,采用直接更新当前服务器缓存数据的方式进行索引更新,在增量索引更新过程中,对需要更新的信息数据进行加锁。
4.根据权利要求3所述的一种移动终端信息推送方法,其特征在于,所述双缓存模式具体为:利用第一缓存存放主索引更新前的信息数据,当所有的主索引数据都更新完成前,使用该缓存对外提供检索服务,依赖于该缓存的主索引数据进行信息检索和投放;利用第二缓存存放更新后的信息数据,当所有的主索引数据都更新完成,并可以成功对外提供信息检索服务时,从第一缓存切换到第二缓存对外提供检索服务。
5.一种移动终端信息推送装置,其特征在于,包括:
倒排索引单元,用于获取信息列表中所有的信息数据,对所述信息数据按字段的属性值进行分拆,建立每个属性值到信息列表的倒排索引;
解析配对单元,用于接收到客户端发送的申请信息的请求数据,解析所述请求数据,生成一系列检索条件,遍历每个检索条件,以检索条件为属性值,从所述倒排索引中读取每个检索条件对应的信息列表;
排序推送单元,用于根据检索条件之间的逻辑关系,将所述每个检索条件对应的信息列表进行排序,生成满足所述请求数据的排序信息列表,将该排序信息列表发送给所述客户端。
6.根据权利要求5所述的一种移动终端信息推送装置,其特征在于,还包括加锁单元,用于采用哈希表来实现倒排索引,对所述哈希表的每个桶进行细粒度加锁。
7.根据权利要求5所述的一种移动终端信息推送装置,其特征在于,还包括动态更新单元,用于基于主索引和/或增量索引的动态更新机制对所述倒排索引进行更新,具体包括:
主索引更新单元,用于每天在预定时刻更新倒排索引,采用双缓存模式对所有的信息数据全部重新建立倒排索引;
增量索引更新单元,用于当在预定时刻外的其他时刻有信息数据更新时,采用直接更新当前服务器缓存数据的方式进行索引更新,在增量索引更新过程中,对需要更新的信息数据进行加锁。
8.根据权利要求7所述的一种移动终端信息推送装置,其特征在于,所述动态更新单元还包括双缓存单元,用于利用第一缓存存放主索引更新前的信息数据,当所有的主索引数据都更新完成前,使用该缓存对外提供检索服务,依赖于该缓存的主索引数据进行信息检索和投放;利用第二缓存存放更新后的信息数据,当所有的主索引数据都更新完成,并可以成功对外提供信息检索服务时,从第一缓存切换到第二缓存对外提供检索服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101421732A CN103218445A (zh) | 2013-04-22 | 2013-04-22 | 一种移动终端信息推送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101421732A CN103218445A (zh) | 2013-04-22 | 2013-04-22 | 一种移动终端信息推送方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103218445A true CN103218445A (zh) | 2013-07-24 |
Family
ID=48816232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101421732A Pending CN103218445A (zh) | 2013-04-22 | 2013-04-22 | 一种移动终端信息推送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218445A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811461A (zh) * | 2014-01-24 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 数据推送方法和装置 |
WO2018112183A1 (en) * | 2016-12-14 | 2018-06-21 | Google Llc | Managing transactions requesting non-existent index keys in database systems |
CN112486915A (zh) * | 2020-12-18 | 2021-03-12 | 上海哔哩哔哩科技有限公司 | 数据存储方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100433005C (zh) * | 2005-11-28 | 2008-11-12 | 腾讯科技(深圳)有限公司 | 搜索系统索引切换的方法及搜索系统 |
US20120323927A1 (en) * | 2011-06-17 | 2012-12-20 | Sap Ag | Method and System for Inverted Indexing of a Dataset |
CN102982153A (zh) * | 2012-11-29 | 2013-03-20 | 北京亿赞普网络技术有限公司 | 一种信息检索方法及其装置 |
-
2013
- 2013-04-22 CN CN2013101421732A patent/CN103218445A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100433005C (zh) * | 2005-11-28 | 2008-11-12 | 腾讯科技(深圳)有限公司 | 搜索系统索引切换的方法及搜索系统 |
US20120323927A1 (en) * | 2011-06-17 | 2012-12-20 | Sap Ag | Method and System for Inverted Indexing of a Dataset |
CN102982153A (zh) * | 2012-11-29 | 2013-03-20 | 北京亿赞普网络技术有限公司 | 一种信息检索方法及其装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811461A (zh) * | 2014-01-24 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 数据推送方法和装置 |
WO2018112183A1 (en) * | 2016-12-14 | 2018-06-21 | Google Llc | Managing transactions requesting non-existent index keys in database systems |
CN109906447A (zh) * | 2016-12-14 | 2019-06-18 | 谷歌有限责任公司 | 管理请求数据库系统中不存在的索引键的事务 |
US10489386B2 (en) | 2016-12-14 | 2019-11-26 | Google Llc | Managing transactions requesting non-existing index keys in database systems |
CN109906447B (zh) * | 2016-12-14 | 2020-11-10 | 谷歌有限责任公司 | 管理请求数据库系统中不存在的索引键的事务 |
CN112486915A (zh) * | 2020-12-18 | 2021-03-12 | 上海哔哩哔哩科技有限公司 | 数据存储方法及装置 |
CN112486915B (zh) * | 2020-12-18 | 2023-01-20 | 上海哔哩哔哩科技有限公司 | 数据存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853727B (zh) | 提高大数据量查询性能的方法及系统 | |
CN101770515B (zh) | 一种基于数据块比较的数据更新方法 | |
CN101876983B (zh) | 数据库分区方法与系统 | |
CN110609865B (zh) | 一种信息同步方法,装置及系统 | |
CN102164186B (zh) | 一种实现云搜索服务的方法及系统 | |
CN101540799B (zh) | 一种移动终端软件升级方法 | |
CN104885071A (zh) | 多设备智能语言模型同步 | |
CN102054000B (zh) | 数据查询方法、装置及系统 | |
CN104426955A (zh) | 共享文件的处理方法及云存储服务器 | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及系统 | |
CN103780636A (zh) | 一种缓存数据处理方法和系统 | |
CN104636477A (zh) | 一种信息推送前推送列表的去重方法 | |
CN103136227A (zh) | 一种生成榜单的方法及装置 | |
CN111221469A (zh) | 同步缓存数据的方法、装置和系统 | |
CN103200278A (zh) | 源站文件更新发布方法及缓存文件更新方法 | |
CN103747436A (zh) | 应用程序下载方法和装置 | |
CN103123638A (zh) | 数据搜索方法和装置 | |
CN110704000A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110309156A (zh) | 数据库系统、数据库更新、扩容方法及设备 | |
CN103312489A (zh) | 一种终端与服务器进行同步的方法和装置 | |
CN103218445A (zh) | 一种移动终端信息推送方法及装置 | |
CN111127252A (zh) | 一种水资源管理决策支持系统的数据管理方法 | |
CN103412869A (zh) | 服务器数据更新的批量推送方法 | |
CN103064908A (zh) | 一种通过内存快速去重名单的方法 | |
CN114741335A (zh) | 缓存管理方法、装置、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130724 |