CN111625617A - 一种数据索引方法、装置及计算机可读存储介质 - Google Patents
一种数据索引方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111625617A CN111625617A CN202010485521.6A CN202010485521A CN111625617A CN 111625617 A CN111625617 A CN 111625617A CN 202010485521 A CN202010485521 A CN 202010485521A CN 111625617 A CN111625617 A CN 111625617A
- Authority
- CN
- China
- Prior art keywords
- data
- inverted
- index
- original data
- memory pool
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000015654 memory Effects 0.000 claims abstract description 171
- 230000011218 segmentation Effects 0.000 claims abstract description 37
- 238000013500 data storage Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 abstract description 5
- 230000009467 reduction Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 11
- 238000010276 construction Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000004793 poor memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据索引方法、装置及计算机可读存储介质,该数据索引方法包括:获取对应于输入数据的正排原始数据和倒排原始数据;将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区;将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区。通过本申请方案的实施,分别将输入数据的正排数据及切词后的倒排数据存储至内存区块内,由内存池管理类统一负责维护内存区块,增强了系统对增量数据的内存管理能力,并使得索引增删效率得到有效提升,可避免因内存碎片引起的服务性能降低。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种数据索引方法、装置及计算机可读存储介质。
背景技术
随着移动互联网产业的蓬勃发展,各类信息的生产速率迎来爆炸式增长,各种业务场景对时效性需求也越来越强烈,更多的信息领域从业者已经意识到将优质信息与目标群体实时连接,既可满足用户对突发性事件的知识获取需求,亦可将信息的价值最大化发挥,因此构建高吞吐的时效性索引系统已逐渐成为搜索、推荐体系中不可或缺的重要一环。
目前,相关技术中在构建时效性索引系统时,将新增数据经过正排转倒排后存储至临时索引库,并与已有内存索引库的索引数据进行合并,同时将内存数据产出一份至磁盘索引库,以实现批量数据的存储及增量数据的更新,然而在实际应用中发现,上述方式对增量数据的内存管理能力较差,索引增删效率较低。
发明内容
本申请实施例提供了一种数据索引方法、装置及计算机可读存储介质,至少能够解决相关技术中的时效性索引系统对增量数据的内存管理能力较差以及索引增删效率较低的问题。
本申请实施例第一方面提供了一种数据索引方法,包括:
获取对应于输入数据的正排原始数据和倒排原始数据;其中,所述正排原始数据以所述输入数据的数据标识为主键,以及以所述输入数据的多维属性为值,所述倒排原始数据以所述输入数据切词后的分词的分词标识为主键,以及以所述分词在多个所述输入数据中的属性为值;
将所述正排原始数据存储至内存池维护的正排数据区,并将对应于所述正排原始数据的正排索引数据存储至所述内存池维护的正排索引区;其中,所述正排索引数据包括所述正排原始数据的存储地址;
将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区;其中,所述倒排索引数据包括所述分词标识以及所述倒排原始数据的存储地址。
本申请实施例第二方面提供了一种数据索引装置,包括:
获取模块,用于获取对应于输入数据的正排原始数据和倒排原始数据;其中,所述正排原始数据以所述输入数据的数据标识为主键,以及以所述输入数据的多维属性为值,所述倒排原始数据以所述输入数据切词后的分词的分词标识为主键,以及以所述分词在多个所述输入数据中的属性为值;
第一存储模块,用于将所述正排原始数据存储至内存池维护的正排数据区,并将对应于所述正排原始数据的正排索引数据存储至所述内存池维护的正排索引区;其中,所述正排索引数据包括所述正排原始数据的存储地址;
第二存储模块,用于将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区;其中,所述倒排索引数据包括所述分词标识以及所述倒排原始数据的存储地址。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的数据索引方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的数据索引方法中的各步骤。
由上可见,根据本申请方案所提供的数据索引方法、装置及计算机可读存储介质,获取对应于输入数据的正排原始数据和倒排原始数据;将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区;将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区。通过本申请方案的实施,分别将输入数据的正排数据及切词后的倒排数据存储至内存区块内,由内存池管理类统一负责维护内存区块,增强了系统对增量数据的内存管理能力,并使得索引增删效率得到有效提升,可避免因内存碎片引起的服务性能降低。
附图说明
图1为本申请第一实施例提供的数据索引方法的基本流程示意图;
图2为本申请第一实施例提供的一种正排原始数据存储示意图;
图3为本申请第一实施例提供的一种倒排原始数据存储示意图;
图4为本申请第一实施例提供的一种数据提取方法的流程示意图;
图5为本申请第一实施例提供的一种数据查询方法的流程示意图;
图6为本申请第一实施例提供的一种数据查询结果输出方法的流程示意图;
图7为本申请第二实施例提供的数据索引方法的细化流程示意图;
图8为本申请第三实施例提供的一种数据索引装置的程序模块示意图;
图9为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中的时效性索引系统对增量数据的内存管理能力较差以及索引增删效率较低的缺陷,本申请第一实施例提供了一种数据索引方法,如图1为本实施例提供的数据索引方法的基本流程图,该数据索引方法包括以下的步骤:
步骤101、获取对应于输入数据的正排原始数据和倒排原始数据。
具体的,在本实施例中,输入数据的数据类型可以是网页、文章等,正排原始数据以输入数据的数据标识为主键,以及以输入数据的多维属性为值,例如可以表现为一篇文章与所包含的分词列表的对应关系,倒排原始数据以输入数据切词后的分词的分词标识为主键,以及以分词在多个输入数据中的属性为值,例如可以表现为一个分词与所出现的文章列表的对应关系。以输入数据为文章为例,数据标识即为文章id,正排索引数据以文章id作为主键,存储文章对应的多维属性信息,倒排索引数据以切词后的分词id作为主键,存储分词对应在多篇文章中的属性。
应当说明的是,在本实施例中,业务方实时输入数据原始内容信息,可以先将输入数据进行数据拼接、字符转码、大小写归一化等数据清洗处理,然后在将处理后数据发送至数据预处理服务。以对文章进行预处理为例,数据预处理服务负责提取文章中正文、标题、url链接、锚文本等正排原始数据,并对正文、标题等可检索字段进行分词、字段赋权、生成倒排原始数据等工作。
步骤102、将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区。
具体的,在本实施例中,正排索引数据包括正排原始数据的存储地址,进一步地,还可以在正排索引数据中对数据长度进行记录。如图2所示为本实施例提供的一种正排原始数据存储示意图,该实施方式的输入数据为文章,首先将文章的正排原始数据存储至由内存池维护的正排数据区,同时将返回的数据地址和数据长度按8字节顺序存储至正排索引区,图2中正排数据区和正排索引区内的虚线框内所存储的即为增量数据的内存索引,当文章数据更新后,在正排索引中,新增文章数据的数据标识增加一个单位。应当说明的是,本实施例的正排索引区以列表形式存在,而正排数据区可以采用mempool方式实现,mempool为一种内存分配方式,预先向操作系统申请一定内存空间并维护该内存资源的分配与销毁。
应当说明的是,本实施例基于内存池技术进行时效性索引构建,在调用内存分配函数的时候,所分配的内存大小都是一定的,所以可以采用每次都分配固定大小的内存块,这样就避免了内存碎片产生的可能。
步骤103、将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区。
具体的,本实施例的倒排索引数据包括分词标识以及倒排原始数据的存储地址,而分词标识可以为采用摘要算法得到的分词签名。在实际应用中,倒排原始数据的存储行为包括“新增”和“追加”两种,其中,“新增”表示增加新的分词的内存索引,而“追加”则表示针对已有分词追加分词倒排数据。如图3所示为本实施例提供的一种倒排原始数据存储示意图,若“新增”分词倒排数据,则将返回的数据地址维护在一哈希映射表中;若“追加”分词倒排数据,则将已有分词出现计数加一,并追加该分词在新文章中的信息于数据区末尾(如图3中虚线框内“分词2在文章n+1中信息”)。
如图4所示为本实施例提供的一种数据提取方法的流程示意图,在本实施例的一些实施方式中,在将正排原始数据存储至内存池维护的正排数据区之前,还具体包括以下步骤:
步骤401、将包括正排原始数据和倒排原始数据的原始业务数据写入至预设消息队列;
步骤402、从消息队列的目标主题获取原始业务数据;
步骤403、从原始业务数据中提取正排原始数据和倒排原始数据。
具体的,在本实施例中,基于采用消息队列处理机制来进行时效性索引构建,也即生产者将正排、倒排原始数据写入至消息队列特定主题中,然后实时索引服务作为消费者监听消息队列特定主题来获取上游业务的原始业务数据输入。应当说明的是,本实施例的消息队列优选的可以采用rocketMQ实现,rocketMQ是一个纯java、分布式、队列模型的开源消息中间件,还应当理解的是,本实施例的消息队列中的主题用于生产者发布数据,以及消费者订阅其中数据进行消费。采用消息队列处理机制,可以支持时效性索引构建的异步处理,并可提升系统整体的数据吞吐能力以及数据承载能力。
如图5如本实施例提供的一种数据查询方法的流程示意图,在本实施例的一些实施方式中,该数据查询方法具体包括以下步骤:
步骤501、在接收到数据查询请求时,根据数据查询请求所携带的分词标识在倒排索引区查询目标倒排原始数据的存储地址;
步骤502、根据倒排数据区对应存储地址的目标倒排原始数据,确定对应于分词标识的数据标识;
步骤503、根据数据标识在正排索引区查询目标正排原始数据的存储地址;
步骤504、根据在正排索引区查询得到的存储地址,在正排数据区查询目标正排原始数据。
具体的,在本实施例中,实时查询服务首先通过分词标识查询倒排索引区获取对应倒排数据的存储地址,再通过该存储地址获取倒排数据区的对应倒排数据,即可对多个数据标识进行确定。然后实时查询服务通过多个数据标识查询正排索引区得到目标正排原始数据的存储地址,再基于该存储地址到正排数据区查询得到目标正排原始数据,即可实现以期查询数据的获取。
如图6如本实施例提供的一种数据查询结果输出方法的流程示意图,进一步地,在本实施例的一些实施方式中,该数据查询结果输出方法具体包括以下步骤:
步骤601、分别根据在正排索引区查询得到的多个存储地址,在正排数据区查询相应目标正排原始数据;
步骤602、分别对多个目标正排原始数据进行有效性评估;
步骤603、将多个目标正排原始数据中,评估有效的目标正排原始数据作为数据查询结果进行输出。
具体的,在实际应用中,由于在正排数据区可以查询到多个正排原始数据,而并非所有正排原始数据均为有效数据,从而本实施例针对所查询到的多个数据先进行有效性评估,并在返回查询结果时,仅将确认有效的正排原始数据对外返回。
更进一步地,在本实施例的一些实施方式中,分别对多个目标正排原始数据进行有效性评估包括:分别获取多个目标正排原始数据的写入时间戳以及有效性标识字段;将有效性标识字段为可用的所有目标正排原始数据中,写入时间戳最新的目标正排原始数据评估为有效。
具体的,在本实施例中,在时效性索引构建过程中,可以对各正排原始数据的写入时间戳进行记录,而在数据查询过程中,实时查询服务通过实时索引服务获取查询得到的多个正排原始数据的写入时间戳,实时查询服务根据数据业务id进行聚合,根据写入时间戳进行排序,若时间戳最新的数据的有效性标识字段为“false”,则表征该数据为不可用状态,也即该数据已被删除,而不对外返回该结果,并根据时间戳排序继续往后查找,直至查找到有效性标识字段为“true”的数据,并将该数据对外输出。
在本实施例的一些实施方式中,将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,还包括:在接收到数据删除请求时,根据数据删除请求所携带的数据标识在正排索引区查询目标正排原始数据的存储地址;将正排数据区中对应存储地址的目标正排原始数据的有效性标识字段标记为不可用。
具体的,在本实施例中,业务方提交数据删除请求包,实时索引服务接收到请求后,根据数据标识在正排索引区查询数据存储地址,并根据该数据存储地址在正排数据区查找到目标删除数据,然后针对该数据进行删除处理,也即将该正排原始数据的有效性标识字段进行不可用标记,例如标记为“false”。
在本实施例的一些实施方式中,在将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,还包括:在接收到数据修改请求时,根据目标修改数据所对应的原始输入数据的数据标识在正排索引区查询目标正排原始数据的存储地址;将正排数据区中对应存储地址的目标正排原始数据的有效性标识字段标记为不可用;将目标修改数据作为输入数据,返回执行获取对应于输入数据的正排原始数据和倒排原始数据的步骤。
具体的,在本实施例中,在修改时效性索引时,首先采用上一实施方式中的数据删除流程将待修改数据进行删除标记,然后再返回执行上述图1的索引构建流程,新建修改后数据对应的时效性索引。
在本实施例的一些实施方式中,将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区包括:根据多个索引服务,将正排原始数据并发存储至内存池维护的不同正排数据区,并将对应于正排原始数据的正排索引数据并发存储至内存池维护的不同正排索引区。相对应的,将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区包括:根据多个索引服务,将倒排原始数据并发存储至内存池维护的不同倒排数据区,并将对应于倒排原始数据的倒排索引数据并发存储至内存池维护的不同倒排索引区。
具体的,在本实施例中,为了提高时效性索引系统的鲁棒性,实时索引服务可以采用双副本设计,通过设定不同的消费者组,针对同一输入数据并行分发、处理、存储两份索引数据,避免某一索引服务出现异常时的查询数据异常现象,并有利于查询服务负载均衡。
在本实施例的一些实施方式中,在将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,还包括:获取内存池的数据存储属性;在数据存储属性满足预设的数据转存条件时,从内存池中获取目标存储数据;将目标存储数据从内存池转存至磁盘。
具体的,在本实施例中,实时索引服务负责维护全局数据编号,起始为1,每成功新增一个数据该编号累加1。本实施例的数据存储属性可以包括内存索引存储阈值和/或内存索引工作时长,从而实时监测内存池中所存储的数据索引数量是否达到预设数量阈值,或内存索引工作时长是否达到预设时长阈值,若是,则确定满足数据转存条件,将内存池中的特定内存索引持久化存储至磁盘索引,并将内存池中的全局数据编号复位为0,可以避免因程序重启或服务器断电造成的非预期内存索引数据丢失。应当理解的是,本实施例中所需转存的数据可以是内存池中的全部内存索引,也可以是部分特定内存索引,可视具体使用需求而定,本实施例不作唯一限定。
基于上述本申请实施例的技术方案,获取对应于输入数据的正排原始数据和倒排原始数据;将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区;将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区。通过本申请方案的实施,分别将输入数据的正排数据及切词后的倒排数据存储至内存区块内,由内存池管理类统一负责维护内存区块,增强了系统对增量数据的内存管理能力,并使得索引增删效率得到有效提升,可避免因内存碎片引起的服务性能降低。
图7中的方法为本申请第二实施例提供的一种细化的数据索引方法,该数据索引方法包括:
步骤701、获取对应于输入数据的正排原始数据和倒排原始数据。
在本实施例中,正排原始数据以输入数据的数据标识为主键,以及以输入数据的多维属性为值,倒排原始数据以输入数据切词后的分词的分词标识为主键,以及以分词在多个输入数据中的属性为值。
步骤702、将包括正排原始数据和倒排原始数据的原始业务数据写入至预设消息队列。
步骤703、从消息队列的目标主题获取原始业务数据,并从原始业务数据中提取正排原始数据和倒排原始数据。
在本实施例中,基于消息队列处理机制来进行时效性索引构建,也即生产者将正排、倒排原始数据写入至消息队列(例如rocketMQ)特定主题中,然后实时索引服务作为消费者监听消息队列特定主题来获取上游业务的原始业务数据输入。
步骤704、将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区。
步骤705、将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区。
在本实施例中,正排索引数据可以包括正排原始数据的数据存储地址和/或数据长度,倒排索引数据可以包括分词标识以及倒排原始数据的存储地址。本实施例分别将输入数据的正排数据及切词后的倒排数据存储至内存区块内,由内存池管理类统一负责维护内存区块。
步骤706、在接收到数据查询请求时,根据数据查询请求所携带的分词标识在倒排索引区查询目标倒排原始数据的存储地址。
步骤707、根据倒排数据区对应存储地址的目标倒排原始数据,确定对应于分词标识的数据标识。
在本实施例中,实时查询服务首先通过分词标识查询倒排索引区获取对应倒排数据的存储地址,再通过该存储地址获取倒排数据区的对应倒排数据,即可对多个数据标识进行确定。
步骤708、在正排索引区查询对应于数据标识的存储地址,并将正排数据区对应存储地址的目标正排原始数据作为查询结果进行输出。
在本实施例中,实时查询服务通过多个数据标识查询正排索引区得到目标正排原始数据的存储地址,再基于该存储地址到正排数据区查询得到目标正排原始数据,即可实现以期查询数据的获取。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种数据索引方法,分别将输入数据的正排数据及切词后的倒排数据存储至内存区块内,由内存池管理类统一负责维护内存区块,增强了系统对增量数据的内存管理能力,并使得索引增删效率得到有效提升,可避免因内存碎片引起的服务性能降低;并且,采用消息队列处理机制,可以支持时效性索引构建的异步处理,并可增强系统整体的数据吞吐能力以及数据承载能力,提升了索引构建和查询速率。
图8为本申请第三实施例提供的一种数据索引装置。该数据索引装置可用于实现前述实施例中的数据索引方法。如图8所示,该数据索引装置主要包括:
获取模块801,用于获取对应于输入数据的正排原始数据和倒排原始数据;其中,正排原始数据以输入数据的数据标识为主键,以及以输入数据的多维属性为值,倒排原始数据以输入数据切词后的分词的分词标识为主键,以及以分词在多个输入数据中的属性为值;
第一存储模块802,用于将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区;其中,正排索引数据包括正排原始数据的存储地址;
第二存储模块803,用于将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区;其中,倒排索引数据包括分词标识以及倒排原始数据的存储地址。
在本实施例一些实施方式中,数据索引装置还包括:提取模块,用于在将正排原始数据存储至内存池维护的正排数据区之前,将包括正排原始数据和倒排原始数据的原始业务数据写入至预设消息队列;从消息队列的目标主题获取原始业务数据;从原始业务数据中提取正排原始数据和倒排原始数据。
在本实施例一些实施方式中,数据索引装置还包括:查询模块,用于在将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,在接收到数据查询请求时,根据数据查询请求所携带的分词标识在倒排索引区查询目标倒排原始数据的存储地址;根据倒排数据区对应存储地址的目标倒排原始数据,确定对应于分词标识的数据标识;根据数据标识在正排索引区查询目标正排原始数据的存储地址;根据在正排索引区查询得到的存储地址,在正排数据区查询目标正排原始数据。
进一步地,在本实施例一些实施方式中,查询模块在根据在正排索引区查询得到的存储地址,在正排数据区查询目标正排原始数据时,具体用于:分别根据在正排索引区查询得到的多个存储地址,在正排数据区查询相应目标正排原始数据;分别对多个目标正排原始数据进行有效性评估;将多个目标正排原始数据中,评估有效的目标正排原始数据作为数据查询结果进行输出。
更进一步地,在本实施例一些实施方式中,查询模块在根据在分别对多个目标正排原始数据进行有效性评估时,具体用于:分别获取多个目标正排原始数据的写入时间戳以及有效性标识字段;将有效性标识字段为可用的所有目标正排原始数据中,写入时间戳最新的目标正排原始数据评估为有效。
在本实施例的一些实施方式中,数据索引装置还包括:删除模块,用于在将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,在接收到数据删除请求时,根据数据删除请求所携带的数据标识在正排索引区查询目标正排原始数据的存储地址;将正排数据区中对应存储地址的目标正排原始数据的有效性标识字段标记为不可用。
在本实施例的一些实施方式中,数据索引装置还包括:修改模块,用于在将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,在接收到数据修改请求时,根据目标修改数据所对应的原始输入数据的数据标识在正排索引区查询目标正排原始数据的存储地址;将正排数据区中对应存储地址的目标正排原始数据的有效性标识字段标记为不可用。相对应的,返回至获取模块801将目标修改数据作为输入数据,并对应执行其功能。
在本实施例的一些实施方式中,第一存储模块802具体用于:根据多个索引服务,将正排原始数据并发存储至内存池维护的不同正排数据区,并将对应于正排原始数据的正排索引数据并发存储至内存池维护的不同正排索引区。相对应的,第二存储模块803具体用于:根据多个索引服务,将倒排原始数据并发存储至内存池维护的不同倒排数据区,并将对应于倒排原始数据的倒排索引数据并发存储至内存池维护的不同倒排索引区。
在本实施例的一些实施方式中,数据索引装置还包括:转存模块,用于在将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区之后,获取内存池的数据存储属性;在数据存储属性满足预设的数据转存条件时,从内存池中获取目标存储数据;将目标存储数据从内存池转存至磁盘。
应当说明的是,第一、二实施例中的数据索引方法均可基于本实施例提供的数据索引装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的数据索引装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的数据索引装置,获取对应于输入数据的正排原始数据和倒排原始数据;将正排原始数据存储至内存池维护的正排数据区,并将对应于正排原始数据的正排索引数据存储至内存池维护的正排索引区;将倒排原始数据存储至内存池维护的倒排数据区,并将对应于倒排原始数据的倒排索引数据存储至内存池维护的倒排索引区。通过本申请方案的实施,分别将输入数据的正排数据及切词后的倒排数据存储至内存区块内,由内存池管理类统一负责维护内存区块,增强了系统对增量数据的内存管理能力,并使得索引增删效率得到有效提升,可避免因内存碎片引起的服务性能降低。
请参阅图9,图9为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的数据索引方法。如图9所示,该电子装置主要包括:
存储器901、处理器902、总线903及存储在存储器901上并可在处理器902上运行的计算机程序,存储器901和处理器902通过总线903连接。处理器902执行该计算机程序时,实现前述实施例中的数据索引方法。其中,处理器的数量可以是一个或多个。
存储器901可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器901用于存储可执行程序代码,处理器902与存储器901耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图9所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的数据索引方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的数据索引方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种数据索引方法,其特征在于,包括:
获取对应于输入数据的正排原始数据和倒排原始数据;其中,所述正排原始数据以所述输入数据的数据标识为主键,以及以所述输入数据的多维属性为值,所述倒排原始数据以所述输入数据切词后的分词的分词标识为主键,以及以所述分词在多个所述输入数据中的属性为值;
将所述正排原始数据存储至内存池维护的正排数据区,并将对应于所述正排原始数据的正排索引数据存储至所述内存池维护的正排索引区;其中,所述正排索引数据包括所述正排原始数据的存储地址;
将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区;其中,所述倒排索引数据包括所述分词标识以及所述倒排原始数据的存储地址。
2.根据权利要求1所述的数据索引方法,其特征在于,所述将所述正排原始数据存储至内存池维护的正排数据区之前,还包括:
将包括所述正排原始数据和所述倒排原始数据的原始业务数据写入至预设消息队列;
从所述消息队列的目标主题获取所述原始业务数据;
从所述原始业务数据中提取所述正排原始数据和所述倒排原始数据。
3.根据权利要求1所述的数据索引方法,其特征在于,所述将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区之后,还包括:
在接收到数据查询请求时,根据所述数据查询请求所携带的分词标识在所述倒排索引区查询目标倒排原始数据的存储地址;
根据所述倒排数据区对应存储地址的所述目标倒排原始数据,确定对应于所述分词标识的数据标识;
根据所述数据标识在所述正排索引区查询目标正排原始数据的存储地址;
根据在所述正排索引区查询得到的所述存储地址,在所述正排数据区查询所述目标正排原始数据。
4.根据权利要求3所述的数据索引方法,其特征在于,所述根据在所述正排索引区查询得到的所述存储地址,在所述正排数据区查询所述目标正排原始数据包括:
分别根据在所述正排索引区查询得到的多个所述存储地址,在所述正排数据区查询相应所述目标正排原始数据;
分别对多个所述目标正排原始数据进行有效性评估;
将多个所述目标正排原始数据中,评估有效的所述目标正排原始数据作为数据查询结果进行输出。
5.根据权利要求4所述的数据索引方法,其特征在于,所述分别对多个所述目标正排原始数据进行有效性评估包括:
分别获取多个所述目标正排原始数据的写入时间戳以及有效性标识字段;
将所述有效性标识字段为可用的所有所述目标正排原始数据中,所述写入时间戳最新的所述目标正排原始数据评估为有效。
6.根据权利要求1所述的数据索引方法,其特征在于,所述将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区之后,还包括:
在接收到数据删除请求时,根据所述数据删除请求所携带的数据标识在所述正排索引区查询目标正排原始数据的存储地址;
将所述正排数据区中对应存储地址的所述目标正排原始数据的有效性标识字段标记为不可用。
7.根据权利要求1所述的数据索引方法,其特征在于,所述将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区之后,还包括:
在接收到数据修改请求时,根据目标修改数据所对应的原始输入数据的数据标识在所述正排索引区查询目标正排原始数据的存储地址;
将所述正排数据区中对应存储地址的所述目标正排原始数据的有效性标识字段标记为不可用;
将所述目标修改数据作为所述输入数据,返回执行所述获取对应于输入数据的正排原始数据和倒排原始数据的步骤。
8.根据权利要求1至7中任意一项所述的数据索引方法,其特征在于,所述将所述正排原始数据存储至内存池维护的正排数据区,并将对应于所述正排原始数据的正排索引数据存储至所述内存池维护的正排索引区包括:
根据多个索引服务,将所述正排原始数据并发存储至内存池维护的不同正排数据区,并将对应于所述正排原始数据的正排索引数据并发存储至所述内存池维护的不同正排索引区;
所述将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区包括:
根据所述多个索引服务,将所述倒排原始数据并发存储至所述内存池维护的不同倒排数据区,并将对应于所述倒排原始数据的倒排索引数据并发存储至所述内存池维护的不同倒排索引区。
9.根据权利要求1至7中任意一项所述的数据索引方法,其特征在于,所述将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区之后,还包括:
获取所述内存池的数据存储属性;
在所述数据存储属性满足预设的数据转存条件时,从所述内存池中获取目标存储数据;
将所述目标存储数据从所述内存池转存至磁盘。
10.一种数据索引装置,其特征在于,包括:
获取模块,用于获取对应于输入数据的正排原始数据和倒排原始数据;其中,所述正排原始数据以所述输入数据的数据标识为主键,以及以所述输入数据的多维属性为值,所述倒排原始数据以所述输入数据切词后的分词的分词标识为主键,以及以所述分词在多个所述输入数据中的属性为值;
第一存储模块,用于将所述正排原始数据存储至内存池维护的正排数据区,并将对应于所述正排原始数据的正排索引数据存储至所述内存池维护的正排索引区;其中,所述正排索引数据包括所述正排原始数据的存储地址;
第二存储模块,用于将所述倒排原始数据存储至所述内存池维护的倒排数据区,并将对应于所述倒排原始数据的倒排索引数据存储至所述内存池维护的倒排索引区;其中,所述倒排索引数据包括所述分词标识以及所述倒排原始数据的存储地址。
11.一种电子装置,其特征在于,包括:存储器、处理器及总线;
所述总线用于实现所述存储器、处理器之间的连接通信;
所述处理器用于执行存储在所述存储器上的计算机程序;
所述处理器执行所述计算机程序时,实现权利要求1至9中任意一项所述方法中的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至9中的任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010485521.6A CN111625617A (zh) | 2020-06-01 | 2020-06-01 | 一种数据索引方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010485521.6A CN111625617A (zh) | 2020-06-01 | 2020-06-01 | 一种数据索引方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625617A true CN111625617A (zh) | 2020-09-04 |
Family
ID=72271249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010485521.6A Pending CN111625617A (zh) | 2020-06-01 | 2020-06-01 | 一种数据索引方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625617A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612796A (zh) * | 2020-12-31 | 2021-04-06 | 江苏诚业智能科技发展有限公司 | 一种基础设施数据管理装置及其管理方法 |
CN114943021A (zh) * | 2022-07-20 | 2022-08-26 | 之江实验室 | 一种tb级增量数据筛选方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253898A (zh) * | 2011-07-22 | 2011-11-23 | 杭州海康威视数字技术股份有限公司 | 一种图像数据的内存管理方法及装置 |
CN103164405A (zh) * | 2011-12-08 | 2013-06-19 | 盛乐信息技术(上海)有限公司 | 相关视频数据库生成方法、相关视频推荐方法及系统 |
CN104572871A (zh) * | 2014-12-19 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 基于索引表检索的方法及装置 |
CN108595489A (zh) * | 2018-03-15 | 2018-09-28 | 北京雷石天地电子技术有限公司 | 一种数据检索方法及装置 |
US10528627B1 (en) * | 2015-09-11 | 2020-01-07 | Amazon Technologies, Inc. | Universal search service for multi-region and multi-service cloud computing resources |
-
2020
- 2020-06-01 CN CN202010485521.6A patent/CN111625617A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253898A (zh) * | 2011-07-22 | 2011-11-23 | 杭州海康威视数字技术股份有限公司 | 一种图像数据的内存管理方法及装置 |
CN103164405A (zh) * | 2011-12-08 | 2013-06-19 | 盛乐信息技术(上海)有限公司 | 相关视频数据库生成方法、相关视频推荐方法及系统 |
CN104572871A (zh) * | 2014-12-19 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 基于索引表检索的方法及装置 |
US10528627B1 (en) * | 2015-09-11 | 2020-01-07 | Amazon Technologies, Inc. | Universal search service for multi-region and multi-service cloud computing resources |
CN108595489A (zh) * | 2018-03-15 | 2018-09-28 | 北京雷石天地电子技术有限公司 | 一种数据检索方法及装置 |
Non-Patent Citations (1)
Title |
---|
熊菊敏等: "数字媒体内容管理技术与实践", 31 August 2007, 中国传媒大学出版社, pages: 182 - 141 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612796A (zh) * | 2020-12-31 | 2021-04-06 | 江苏诚业智能科技发展有限公司 | 一种基础设施数据管理装置及其管理方法 |
CN114943021A (zh) * | 2022-07-20 | 2022-08-26 | 之江实验室 | 一种tb级增量数据筛选方法和装置 |
US11789639B1 (en) | 2022-07-20 | 2023-10-17 | Zhejiang Lab | Method and apparatus for screening TB-scale incremental data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111046034B (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
US8924365B2 (en) | System and method for range search over distributive storage systems | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
TW201530328A (zh) | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 | |
US20190005101A1 (en) | Method and apparatus for accessing time series data in memory | |
CN113721862B (zh) | 数据处理方法及装置 | |
CN111625617A (zh) | 一种数据索引方法、装置及计算机可读存储介质 | |
CN110928851A (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
CN111046106A (zh) | 缓存数据同步方法、装置、设备及介质 | |
CN114490060A (zh) | 内存分配方法、装置、计算机设备和计算机可读存储介质 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 | |
CN112685417B (zh) | 数据库操作方法、系统、装置、服务器及存储介质 | |
CN109522311B (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN113806803B (zh) | 一种数据存储方法、系统、终端设备及存储介质 | |
WO2022001626A1 (zh) | 注入时序数据的方法、查询时序数据的方法及数据库系统 | |
CN114579617A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN113986828A (zh) | 存储海量文件的方法、装置、电子设备及存储介质 | |
CN112199463A (zh) | 数据查询方法、装置及设备 | |
CN114238264A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN109739883B (zh) | 提升数据查询性能的方法、装置和电子设备 | |
CN111061719A (zh) | 数据收集方法、装置、设备和存储介质 | |
CN106776772B (zh) | 一种数据检索的方法及装置 | |
CN110609926A (zh) | 数据标签存储管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |