CN116955282A - 一种查询方法和相关装置 - Google Patents
一种查询方法和相关装置 Download PDFInfo
- Publication number
- CN116955282A CN116955282A CN202310514461.XA CN202310514461A CN116955282A CN 116955282 A CN116955282 A CN 116955282A CN 202310514461 A CN202310514461 A CN 202310514461A CN 116955282 A CN116955282 A CN 116955282A
- Authority
- CN
- China
- Prior art keywords
- content
- index
- processed
- application program
- identifier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013507 mapping Methods 0.000 claims abstract description 102
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000012986 modification Methods 0.000 claims description 21
- 230000004048 modification Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004321 preservation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种查询方法和相关装置,方法包括:通过应用程序获取待处理内容;根据待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;基于摘要整型数据和待处理内容的内容容量,确定待处理内容的待识别索引标识;通过待识别索引标识查询应用程序的索引数据库,索引数据库用于记录通过应用程序保存的已保存内容的索引标识;响应于索引数据库中具有与待识别索引标识相同的目标索引标识,确定待处理内容与目标索引标识对应的第一内容为相同内容,并为待处理内容建立基于第一内容的第一硬链接,能够同时实现索引查询的高效性和准确性。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种查询方法和相关装置。
背景技术
硬链接是指计算机文件系统中的多个文件平等地共享同一个文件存储单元。基于一个源文件可以建立多个硬链接,通过多个硬链接均可访问该源文件,并且在存储空间内仅保存了源文件,能够节省多个相同文件重复保存所占用的存储空间。
在为文件建立硬链接之前,需要对本地存储文件进行索引查询,从本地存储文件中查询与该文件对应的相同文件,相关技术中,为了保障索引查询的准确性,往往通过对文件摘要进行字符串比较,以确定本地存储文件中与该文件的文件摘要相同的相同文件,并获取该相同文件的存储位置。
然而,当本地存储文件的数量级较大时,通过字符串比较方式对本地存储文件进行索引查询所耗费的时间较长,导致索引查询的效率较低,难以满足索引查询的高效性要求。
发明内容
为了解决上述技术问题,本申请提供了一种查询方法和相关装置,能够满足索引查询的高效性和准确性。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供了一种查询方法,其特征在于,所述方法包括:
通过应用程序获取待处理内容;
根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;
基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识;
通过所述待识别索引标识查询所述应用程序的索引数据库,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识;
响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
又一方面,本申请实施例提供了一种查询装置,所述装置包括:获取单元、整型映射单元、确定单元、查询单元和硬链接单元;
所述获取单元,用于:通过应用程序获取待处理内容;
所述整型映射单元,用于根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;
所述确定单元,用于:基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识;
所述查询单元,用于:通过所述待识别索引标识查询所述应用程序的索引数据库,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识;
所述硬链接单元,用于:响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
优选地,当所述待处理内容是通过所述应用程序接收且尚未下载的内容时,所述装置还包括保存单元,用于:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并通过所述应用程序对所述待处理内容进行保存。
优选地,所述装置还包括更新单元,用于:
根据所述待识别索引标识和所述待处理内容的保存路径,生成所述待处理内容针对所述应用程序的第一内容索引;
将所述第一内容索引更新至所述索引数据库中。
优选地,当所述待处理内容是通过所述应用程序向其他终端设备待转发的内容时,所述查询单元还用于:
确定所述待处理内容的转发路径;
响应于所述转发路径与所述应用程序关联,为所述待处理内容建立基于所述转发路径的源内容的硬链接;
响应于所述转发路径与所述应用程序不关联,执行所述通过所述待识别索引标识查询所述应用程序的索引数据库的操作。
优选地,所述装置还包括复制单元,用于:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并基于所述转发路径,通过所述应用程序将所述待处理内容复制到待转发界面。
优选地,在所述为所述待处理内容建立基于所述第一内容的第一硬链接之后,所述装置还包括更新单元,用于:
根据所述待识别索引标识和所述第一硬链接的保存路径,生成所述第一硬链接针对所述应用程序的第二内容索引;
将所述第二内容索引更新至所述索引数据库中。
优选地,所述已保存内容包括第二内容,所述第二内容在所述索引数据库中有第二内容索引,所述第二内容索引包括第二索引标识和索引值,所述索引值包括用于标识所述第二内容的保存路径的路径项;
所述确定单元具体用于:
根据所述第二内容的保存路径的路径字段类型,将所述第二内容的保存路径划分为固定字段、内容来源字段和内容名称字段,所述固定字段为所述已保存内容的保存路径中共同的路径字段,所述内容来源字段用于标识所述应用程序中提供所述第二内容的目标账号的账号标识,和保存所述第二内容的时间参数;
舍弃所述固定字段,并根据所述内容来源字段的字段信息,通过整型映射得到对应的来源整型数据;
通过所述来源整型数据和所述内容名称字段,确定所述路径项。
优选地,所述来源整型数据包括第一整型数据子项和第二整型数据子项,所述确定单元具体用于:
根据所述内容来源字段用于标识所述账号标识的字段信息,通过整型映射规则得到对应的第一整型数据子项;
根据所述内容来源字段用于标识所述时间参数的字段信息,通过所述整型映射规则得到对应的第二整型数据子项。
优选地,所述索引数据库还包括针对所述整型映射规则的还原索引表,所述装置还包括还原单元,用于:
获取针对所述第二内容的保存路径的获取请求,所述获取请求包括所述第二内容的第二索引标识;
根据所述第二索引标识,从所述索引数据库查找所述第二内容索引中的索引值;
根据所述索引值的路径项中的所述第一整型数据子项和所述第二整型数据子项,通过所述还原索引表还原得到所述账号标识和所述时间参数;
通过所述账号标识、所述时间参数、所述固定字段和所述路径项中的内容名称字段,生成所述第二内容的保存路径。
优选地,所述索引值还包括所述第二内容的内容摘要标识和所述第二内容通过所述应用程序的最新修改时间。
优选地,所述第二内容被创建有N个硬链接,N>1,所述索引数据库中包括所述N个硬链接对应的索引内容,所述装置还包括删除单元,用于:
将所述N个硬链接中的目标硬链接从只读状态切换为可写状态;
当所述目标硬链接被通过所述应用程序删除时,根据所述目标硬链接的删除时间,从所述索引数据库中查询到索引值中最新修改时间和所述删除时间相同的N-1个内容索引;
将所述N-1个内容索引对应的N-1个硬链接的文件状态从可写状态切换为只读状态。
优选地,所述装置还包括构建单元,用于:
获取通过所述应用程序保存的待处理已保存内容;
根据所述待处理已保存内容的内容摘要标识,通过整型映射得到对应的待处理摘要整型数据;
基于所述待处理摘要整型数据和所述待处理已保存内容的内容容量,确定所述待处理已保存内容的索引标识;
响应于所述待处理已保存内容中具有相同索引标识的多个待处理已保存内容,将所述多个待处理已保存内容中一个待处理已保存内容作为目标已保存内容,其他待处理已保存内容进行删除,并对所述其他待处理已保存内容建立基于所述目标已保存内容的硬链接;
将剩余的目标已保存内容作为所述已保存内容,并根据所述已保存内容的索引标识,构建所述索引数据库。
又一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序执行以上方面所述的方法。
又一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行以上方面所述的方法。
又一方面,本申请实施例提供了一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得所述计算机设备执行以上方面所述的方法。
由上述技术方案可以看出,在通过应用程序获取待处理内容时,可以得到该待处理内容的内容摘要标识,由于内容摘要标识是非整型数据,在进行索引时会消耗大量的系统资源,故可通过整型映射得到内容摘要标识对应的摘要整型数据,为了降低摘要整型数据可能出现的重复率,结合待处理内容的内容容量来确定对应的待识别索引标识,以此在降低数据复杂度的情况下,提升对待处理内容的标识的唯一性。由于索引数据库中记录有通过应用程序保存的已保存内容的索引标识,故可基于数据结构简单的待识别索引标识快速确定已保存内容中是否具有与该待处理内容相同的第一内容,并在具有第一内容时,为待处理内容建立对应第一内容的硬链接,无需额外保存待处理内容。由此可见,在采用硬链接的保存场景中,当需要确定重复内容时,通过将非整型的内容摘要标识映射为整型数据,再依据以此得到的待识别索引标识对索引数据库进行查询,相对于相关技术在索引查询中的字符串比较方式,整型数据间的比较在处理量和效率上均能大幅优化,而且结合内容容量还能提升查询精度,从而同时实现了高效性和准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种查询场景的示意图;
图2为本申请实施例提供的一种查询方法的方法流程图;
图3为本申请实施例提供的FNV算法输出的映射值的数量与碰撞概率之间关系的示意图;
图4为本申请实施例提供的针对文件1的查询方法的流程图;
图5为本申请实施例提供的针对附件下载请求的查询方法的流程图;
图6为本申请实施例提供的转发场景下的查询方法的流程图;
图7为本申请实施例提供的原始方案与优化方案的性能对比图;
图8为本申请实施例提供的一种查询装置的结构示意图;
图9为本申请实施例提供的一种终端设备的结构图;
图10为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
通过为相同内容建立硬链接,使用多个硬链接访问这些相同内容对应的源内容,可以降低应用程序使用过程中对相同内容进行重复保存所占用的存储资源。相关技术中,当通过应用程序获得新的待处理内容时,需要根据该待处理内容的内容摘要,通过字符串比较的方式对本地存储内容进行索引查询,以确定通过该应用程序已保存的内容中与该待处理内容对应的相同内容,以及该相同内容的存储位置,并建立待处理内容与该相同内容之间的硬链接。然而,通过字符串比较的方式进行索引查询,需要对字符串中的每个字符逐个进行比较,消耗大量系统资源,当本地存储内容较多时,根据该内容摘要进行索引查询时所耗费的时间较长,索引查询的效率较低,难以满足索引查询的高效性要求。
为此,本申请实施例提供了一种查询方法和相关装置,使用仅包括整型数据的待识别索引标识进行索引查询,并在待识别索引标识中结合了内容容量,在保障查询精度的同时,节省了索引查询时间,提高了索引查询效率,同时实现了索引查询的高效性和准确性。
本申请实施例所提供的查询方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息、联系人信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
具体通过如下实施例进行说明:
在图1所示的场景中,以终端设备100作为前述计算机设备的实例进行说明。终端设备的应用程序中接收到来自联系人A的文件1(待处理内容),为了节省终端设备中的存储空间,需要在终端设备中查询通过该应用程序保存的与文件1对应的相同文件,当该相同文件存在时,可以直接建立文件1与该相同文件之间的硬链接,避免同一个文件的重复保存。
然而由于文件1的内容摘要标识为非整型数据,通过非整型数据在终端设备中进行索引查询会消耗大量的系统资源,索引查询的效率较低,为此,在图1所示的场景中,通过整型映射,将文件1的内容摘要标识映射为整型数据,即该内容摘要标识对应的摘要整型数据,降低数据的复杂程度,由于整型数据之间的比较可以直接根据数值大小的比较来实现,因此通过整型数据进行索引查询能够降低索引查询的复杂程度,节省索引查询所花费的时间,进而提高索引查询的效率。同时,由于通过整型映射获得的摘要整型数据之间可能重复,为了保障索引查询的精度,在确定文件1对应的待识别索引标识时引入文件1的内容容量,通过摘要整型数据和内容容量确定该文件1对应的待识别索引标识,由于文件1的内容容量也为整型数据,因此根据摘要整型数据和内容容量确定的待识别索引标识为整型数据,简化了用于索引查询的待识别索引标识的数据结构。
在索引数据库中,保存有通过该应用程序保存的已保存内容对应的索引标识,索引数据库中保存的索引标识也是根据前述已保存内容的内容摘要标识和内容容量所确定的整型数据。根据待识别索引标识进行索引查询,从索引数据库中查询与该待识别索引标识相同的索引标识,当待识别索引标识与该索引数据库中的索引标识1相同时,认为该索引标识1对应的已保存内容与该待识别索引标识对应的待处理内容相同,将该索引标识1确定为目标索引标识,将索引标识1对应的已保存内容确定为该目标索引标识对应的第一内容,那么待处理内容与该第一内容是相同的,基于该第一内容,为待处理内容建立对应于该第一内容的硬链接,当用户通过应用程序中的聊天界面打开文件1时,基于该硬链接直接访问第一内容,无需对文件1进行下载,避免对同一个文件的重复保存。
也就是说,在采用硬链接的保存场景中,当需要确定文件1对应的重复内容时,通过将非整型的内容摘要标识映射为整型数据,再根据整型的内容容量确定待识别索引标识,根据该待识别索引标识对索引数据库进行查询,相对于使用非整型数据进行索引查询的方式,在保障索引查询精度的同时,能够有效减小索引查询过程中的计算量,减小索引查询所花费的时间,提高索引查询的效率,同时实现了高效性和准确性。
图2为本申请实施例提供的一种查询方法的方法流程图,该方法可以由计算机设备执行,在本实施例中,以该计算机设备是终端设备为例进行说明,所述方法包括:
步骤201:通过应用程序获取待处理内容。
应用程序是在终端设备上运行的软件程序,用于执行特定的任务或功能,如用于商品交易的购物应用程序、用于聊天交友的社交应用程序等,不同应用程序中的数据在终端设备中对应的存储位置也不相同,以社交应用程序为例,在用户使用该应用程序的过程中,会通过该应用程序接收其他用户发送的消息,这些消息中可能包括文本信息、图像、视频、文件等内容,当用户需要通过该应用程序访问这些消息中的图片、视频、文件等内容时,需要先将该内容下载到该应用程序在终端设备对应的存储位置中,再通过该应用程序从其在终端设备中对应的存储位置打开该内容,提供给用户。
随着应用程序中,用户处理消息的增加,通过该应用程序中不同消息保存的内容可能相同,而对于这些相同内容进行重复保存,占用了该应用程序在终端设备中的存储空间,给用户造成了存储空间的浪费。在本申请实施例中,通过应用程序所获取的待处理内容,是通过终端设备中的应用程序接收到消息提示后,还未被终端设备所保存的消息内容。当终端设备通过应用程序接收到该待处理内容对应的消息提示后,可以从消息提示中获取该待处理内容的基本信息,例如内容名称、内容容量、发送时间等,但该待处理内容所对应的图像、视频、文件等具体内容,还未被终端设备接收并保存,因此待处理内容还并未占用终端设备中的存储空间。
例如,在图1所示的场景中,联系人A通过应用程序向用户发送了文件1,文件1即为该场景下的待处理内容,在聊天界面中显示有待处理内容所对应的消息提示,此时通过该消息提示可以获取该待处理内容的内容名称、内容容量、发送时间,但该待处理内容所对应的文件1还未被下载到该终端设备中。
步骤202:根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据。
在终端设备通过应用程序获取待处理内容之后,可以获得该待处理内容对应的内容摘要标识,其中,内容摘要标识是根据待处理内容中所包含的具体内容生成的唯一性标识,根据多个内容摘要标识之间的对比,可以确定前述多个内容摘要标识所对应的具体内容是否相同;当具体内容相同时,这些具体内容对应的内容摘要标识也是相同的。
在具体实现时,内容摘要标识可以根据MD5消息摘要算法(MD5Message-DigestAlgorithm)生成的MD5值来确定。MD5消息摘要算法是一种被广泛使用的密码散列函数,可以生成一个128位的散列值,用于确保信息传输完整一致。在消息传输过程中,通过发送端根据发出消息生成的MD5与接收端根据接收消息生成的MD5进行对比,当发送端和接收端的MD5相同时,认为发出消息和接收消息一致,因此在本申请实施例中,MD5可以作为内容摘要标识,用于校验内容之间的一致性。
需要说明的是,内容摘要标识也可以通过其他方式来确定,前述MD5仅为一种示例,不应当理解为对本申请实施例的限定。
然而,根据待处理内容中所包含的具体内容生成的内容摘要标识往往为非整形数据,数据结构复杂,通过这种复杂数据结构进行索引查询需要耗费大量系统资源,花费较长的查询时间,导致索引查询效率较低。例如,通过MD5消息摘要算法获得的MD5值是一个长字符串,若通过MD5值进行索引查询,则需要进行字符串比较,字符串是由数字、字母、下划线组成的一串字符,字符串比较是对多个字符串中的每个字符进行逐一比较,由于字符串中的每个字符有多种可能的形式,数据组成较为复杂,所以字符串比较需要花费较长的时间。以两个字符串之间的比较为例,在对两个字符串进行比较时,需要比较这两个字符串中相同位置对应的字符是否相同,当两个字符串中各个相同位置对应的字符均相同,且两个字符串的长度也相同时,才认为这两个字符串相同。将待处理内容对应的MD5值与终端设备中通过该应用程序保存的已保存内容的MD5值进行比较,在字符串比较过程中,需要对字符串中的每个字符进行一一校验,耗时长且索引查询的效率较低。
为了提高索引查询效率,在本申请实施例中需要对待处理内容的内容摘要标识进行整型映射。整型映射是指通过对非整型数据进行映射,赋予其一个映射值,该映射值为整型数据(Integer,INT),整型数据中存储的数据为整数,所以在对整型数据进行比较时,可以直接通过比较整型数据中整数的数值大小来实现,相较于相关技术中的字符串比较方式而言,有效缩短了数据比较消耗的时间;用该映射值作为该非整型数据的“标签”,建立映射值与非整型数据之间的映射关系,基于这种映射关系,相同的非整型数据会对应相同的映射值。在本申请实施例中,由于内容摘要标识为待处理内容所对应的唯一性标识,相同内容所对应的内容摘要标识是相同的,因此对相同内容摘要标识进行映射所获得的映射值也是相同的,即相同内容具有相同的“标签”,这种“标签”就是摘要整型数据,通过查询根据摘要整型数据,基于整型数据间的数值比较可以快速查找与该摘要整型数据相同数值的整型数据,进而快速确定与该待处理内容具有相同“标签”的相同内容,有效减少了查询过程所消耗的时间。
具体地,整型映射可以通过FNV(Fowler-Noll-Vo)算法来实现,FNV算法一种快速、可靠的哈希算法,能够快速哈希大量数据并保持较小的碰撞率。哈希(hash)是指将任意长度的输入,通过哈希算法,变换成固定长度的输出值,在本申请实施例中,通过FNV算法对待处理内容的内容摘要标识进行整型映射,将内容摘要标识映射为整型数据,FNV算法针对内容摘要标识的映射值即为该内容摘要标识对应的摘要整型数据。在FNV算法输出的摘要整型数据中,当同一个摘要整型数据映射了不同内容摘要标识时,即发生了碰撞,不同内容摘要标识对应的摘要整型数据出现了重复。
FNV算法具有高度分散性,使用FNV算法进行映射时,映射值之间的碰撞概率公式如下式所示:
其中,p(k)为碰撞概率,k为输入的数量,N为映射值的数量。
当使用32位的映射值进行映射时,FNV算法输出的映射值的数量(Number of 32-bit hashes)与碰撞概率(Probability of hash collision)之间的关系如图3所示,可以看出,随着FNV算法输出的映射值的数量增加,使用32位映射值进行映射时的碰撞概率逐渐增大。
具体地,使用32位的哈希值,通过FNV算法中的FNV-1a算法和FNV-1算法,分别对数字1至216553、216553个不同的英语单词和216553个随机通用唯一识别码(UniversallyUnique Identifier,UUID)三组数据进行映射,两种算法各自对应的碰撞个数如下表所示:
其中,对数字1至216553进行映射时,FNV-1a算法和FNV-1算法均未出现碰撞;对216553个不同的英语单词进行映射时,使用FNV-1a算法出现了4个英语单词的映射值碰撞,使用FNV-1算法出现了1个英语单词的映射值碰撞;对216553个随机UUID进行映射时,使用FNV-1a算法出现了4个UUID的映射值碰撞,使用FNV-1算法出现了5个UUID的映射值碰撞,由此可见,相较于每组数据的总数量216553,使用FNV算法进行映射时发生碰撞的映射值数量极少。
因此,可以通过FNV算法对本申请实施例中待处理内容的内容摘要标识进行整型映射。
步骤203:基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识。
摘要整型数据是通过整型映射获得的待处理内容的内容摘要标识对应的整型数据,降低了内容摘要标识的数据复杂程度;待处理内容的内容容量也为整型数据,内容容量用于描述该待处理内容的大小,即存储该待处理内容时所占用的存储空间,例如,当待处理内容为文件时,内容容量则为该文件的大小,当待处理内容为图像,内容容量则为该图像的大小。待识别索引标识是根据摘要整型数据和内容容量共同确定的、根据待处理内容进行索引查询过程中使用的标识。
在用户使用应用程序的过程中,随着用户数据的增加,会有越来越多的内容需要通过整型映射确定其对应的映射值,整型映射的输入数量也会随之增加。当整型映射的映射值范围有限时,可能会发生映射值碰撞,即不同的内容摘要标识可能被映射为同一个摘要整型数据,此时便无法根据摘要整型数据唯一确定其对应的待处理内容,导致索引查询的精度降低。为此,本申请实施例在索引查询过程中引入了待处理内容的内容容量,即使不同内容摘要标识所对应的摘要整型数据相同,但是,由于不同内容摘要标识对应的具体内容不同,不同具体内容对应的内容容量不同,所以不同内容摘要标识所对应的内容容量不同,因此可以在摘要整型数据的基础上,引入内容容量,通过摘要整型数据和内容容量两个因素来确定待处理内容对应的待识别索引标识。
待识别索引标识是进行索引查询时,用于校验多个内容之间一致性的标识。当多个内容所对应的摘要整型数据和内容容量均相同时,前述多个内容所对应的待识别索引标识才会相同,进而通过该待识别索引标识可以确定前述多个内容是相同内容。
由于摘要整型数据和待处理内容的内容容量均为整型数据,所以根据二者所确定的待识别索引标识也为整型数据,通过待识别索引标识进行索引查询,相较于通过摘要整型数据进行索引查询,在不增加数据复杂程度的同时,提高了索引查询的精度。
步骤204:通过所述待识别索引标识查询所述应用程序的索引数据库。
其中,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识。
由于根据摘要整型数据和内容容量所确定的待识别索引标识为整型数据,同样地,索引数据库中记录的索引标识也为整型数据。因此,在通过待识别索引标识查询该应用程序的索引数据库时,可以直接通过数值比较的方式从应用程序的索引数据库中查询与待识别索引标识的数值相等的整型数据。在计算机中对不同类型的数据进行比较时,字符串之间的比较需要依次对字符串中的每一个字符进行比较,浮点数据的比较需要对不同精度的浮点数进行数据类型转换,再对转换后的数据进行数值比较,而整型数据的比较可以直接通过比较整数数值来实现,能够有效缩短索引查询所消耗的时间,提高索引查询的效率。
步骤205:响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
当在终端设备中该应用程序的索引数据库中查询到与待识别索引标识相同的目标索引标识时,认为在终端设备中通过该应用程序保存的已保存内容中,存在摘要整型数据和内容容量均与该待处理内容相同的内容,即目标索引标识对应的第一内容与该待处理内容之间的摘要整型数据和内容容量均相同;基于整型映射过程中所建立的映射关系,认为该第一内容的内容摘要标识与待处理内容的摘要标识也相同;那么在内容摘要标识和内容容量均相同的条件下,可以认为该第一内容与待处理内容相同,即在终端设备中已经存有通过该应用程序保存的与待处理内容对应的相同内容。
在确定待处理内容与第一内容为相同内容后,可以直接基于第一内容为该待处理内容建立第一硬链接,硬链接是指当计算机文件系统中存在多个相同文件时,将多个相同文件各自的文件名和该计算机文件系统使用的节点号链接起来,多个相同文件平等地共享同一个文件存储单元,该文件存储单元即为前述多个相同文件所对应源文件的存储位置,通过多个文件名均能访问该源文件,节省了计算机文件系统中的存储空间。将第一内容和待处理内容链接在一起,当用户通过该应用程序访问该待处理内容时,可以直接通过第一硬链接,打开第一内容和待处理内容对应的源内容,无需对待处理内容进行下载,避免了同一个内容的重复保存,节省了终端设备中该应用程序占用的存储空间。
本申请实施例在通过应用程序获取待处理内容时,可以得到该待处理内容的内容摘要标识,由于内容摘要标识是非整型数据,在进行索引时会消耗大量的系统资源,故可通过整型映射得到内容摘要标识对应的摘要整型数据,为了降低摘要整型数据可能出现的重复率,结合待处理内容的内容容量来确定对应的待识别索引标识,以此在降低数据复杂度的情况下,提升对待处理内容的标识的唯一性。由于索引数据库中记录有通过应用程序保存的已保存内容的索引标识,故可基于数据结构简单的待识别索引标识快速确定已保存内容中是否具有与该待处理内容相同的第一内容,并在具有第一内容时,为待处理内容建立对应第一内容的硬链接,无需额外保存待处理内容。由此可见,在采用硬链接的保存场景中,当需要确定重复内容时,通过将非整型的内容摘要标识映射为整型数据,再依据以此得到的待识别索引标识对索引数据库进行查询,相对于相关技术在索引查询中的字符串比较方式,整型数据间的比较在处理量和效率上均能大幅优化,而且结合内容容量还能提升查询精度,从而同时实现了高效性和准确性。
当基于第一内容为待处理内容建立第一硬链接之后,需要基于该第一硬链接对索引数据库进行更新,所以在步骤205之后,本申请实施例提供的一种查询方法还包括如下步骤:
S11:根据所述待识别索引标识和所述第一硬链接的保存路径,生成所述第一硬链接针对所述应用程序的第二内容索引。
在为待处理内容建立硬链接之前,需要确定已保存内容中是否有相同内容,以及该相同内容的存储位置;当确定第一内容与待处理内容为相同内容后,基于第一内容为待处理内容建立第一硬链接,无需再下载待处理内容对应的具体内容,而是通过硬连接为二者对应的源内容创建一个新的路径,在这个新的路径中保存有该待处理内容对应的第一硬链接,相较于直接保存该待处理内容对应的具体内容,节省了对同一内容重复保存所占用的存储空间。通过该第一硬链接能够确定待处理内容所对应源内容的存储位置,并根据该存储位置访问源内容。
S12:将所述第二内容索引更新至所述索引数据库中。
将第二内容索引加入到索引数据库中,对索引数据库进行更新。在索引数据库中,将待处理内容对应的待识别索引标识和第一硬链接的保存路径以第二内容索引的形式进行保存,直接通过第二内容索引对待处理内容进行管理。在后续进行索引查询时,可以根据索引标识中整型数据的数值大小,从索引数据库中快速查询到与该数值大小相等的待识别索引标识,再通过包含该待识别索引标识的第二索引内容,确定第二索引内容中的第一硬链接的保存路径,并通过该保存路径调用该第一硬链接,从而调用该第一硬链接对应的源内容。
以图1所示的场景为例,文件1为待处理内容,基于第一内容为文件1建立第一硬链接,并根据文件1的待识别索引标识和第一硬链接的保存路径,生成文件1对应的第二索引内容并保存在该应用程序对应的索引数据库中。硬链接可以表现为一个文件的一个或多个文件名,“文件1”即为图1所示场景中源文件的其中一个文件名,基于第一硬链接对该文件名进行管理。虽然文件1所对应的具体文件并未通过该应用程序下载到终端设备100中,但在索引查询时,根据文件1的待识别索引标识可以从索引数据库中确定其对应的第二内容索引,并基于第二内容索引中的第一硬链接的保存路径调用该第一硬链接,进而访问该第一硬链接所连接到的源文件,即用户可以通过聊天界面中“文件1”这一文件名直接访问其对应的具体内容。
当索引数据库中存在与该待识别索引标识相同的目标索引标识时,根据待识别索引标识和第一硬链接的保存路径生成针对于待处理内容的第二内容索引,并将该第二内容索引更新至索引数据库中,提高了索引数据库中索引内容的时效性,减少了索引查询的查询时间,进而提高了索引查询的效率。
若根据待处理内容的待识别索引标识,在该应用程序对应的索引数据库中未查询到与该待识别索引标识相同的目标索引标识,此时,认为在终端设备通过该应用程序保存的已保存内容中,并不存在与该待处理内容相同的内容,那么此时的待处理内容则是通过该应用程序接收且尚未下载的内容,需要将该待处理内容通过该应用程序保存在终端设备中,以便用户访问该待处理内容。
因此,在一种可能的实现方式中,当所述待处理内容是通过所述应用程序接收且尚未下载的内容时,本申请实施例提供的一种查询方法还包括:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并通过所述应用程序对所述待处理内容进行保存。
当索引数据库中不具有与待识别索引标识相同的目标索引标识时,认为终端设备通过应用程序保存的已保存内容中,不具有与待处理内容相同的内容,即虽然该待处理内容已通过该应用程序接收,但其对应的具体内容还并未被下载,也就并未保存在该应用程序在终端设备中对应的已保存内容中;该待处理内容相对于前述已保存内容而言是一种新内容。当用户需要通过该应用程序访问该待处理内容时,无法在前述已保存内容中查找到该待处理内容,也就无法实现通过该应用程序对该待处理内容的访问,所以当待处理内容是通过应用程序接收且尚未下载的内容时,需要通过该应用程序,下载该待处理内容对应的具体内容,并将该具体内容与前述已保存内容一起保存在该终端设备中。
具体地,参见图4所示,以图1中的文件1为例,当终端设备100通过应用程序接收到文件1后,首先通过该文件1的待识别索引标识在索引数据库内进行索引查询,来判断终端设备100通过该应用程序保存的已保存内容中是否存在与文件1对应的相同文件。当索引数据库中存在与待识别索引标识相同的目标索引标识时,认为前述已保存内容中存在与文件1对应的相同文件,此时直接基于该相同文件,为文件1建立硬链接;否则,下载文件1并与前述已保存内容一起保存在终端设备100中。
当索引数据库中不存在与该待识别索引标识相同的目标索引标识时,直接通过该应用程序将待处理内容对应的具体内容下载并保存到终端设备中,提高了对于新内容的处理效率。
进一步地,在通过该应用程序对待处理内容下载完成后,所述方法还包括:
S21:根据所述待识别索引标识和所述待处理内容的保存路径,生成所述待处理内容针对所述应用程序的第一内容索引。
当待处理内容为新内容时,将该待处理内容下载并保存在终端设备中该应用程序对应的存储空间,并获得待处理内容在该存储空间中对应的保存路径,基于该保存路径和待识别索引标识,生成该待处理内容针对与该应用程序的第一内容索引。
S22:将所述第一内容索引更新至所述索引数据库中。
将第一内容索引加入至索引数据库中,对索引数据库进行更新。在索引数据库中,将待处理内容的待识别索引标识和保存路径以第一内容索引的形式进行保存,直接通过第一内容索引对待处理内容进行管理。在进行索引查询时,可以根据索引标识中整型数据的数值大小,从索引数据库中快速查询到与该数值大小相等的待识别索引标识,再通过包含该待识别索引标识的第一索引内容,确定第一索引内容中的待处理内容的保存路径,并通过该保存路径直接调用该待处理内容。
当索引数据库中不存在与该待识别索引标识相同的目标索引标识时,根据待处理内容的待识别索引标识和保存路径生成针对于待处理内容的第一内容索引,并将该第一内容索引更新至索引数据库中,提高了索引数据库中索引内容的时效性,减少了索引查询的查询时间,进而提高了索引查询的效率。
具体地,参见图5所示,当待处理内容为附件时,应用程序在接收到附件的下载请求后,首先根据该附件对应的待识别索引标识,从索引数据库中查询是否存在与该待识别索引标识相同的目标索引标识,如果否,则直接通过该应用程序下载该附件,并根据待识别索引标识和该附件的保存路径,生成该附件对应的内容索引,将该内容索引更新至索引数据库中;如果是,则基于该目标索引标识对应的内容,为该附件建立硬链接,并在聊天界面中,为用户展示该附件的快速下载效果,通过该快速下载效果,用户可以获知该应用程序以开始对该附件进行“下载”;当硬链接建立完成后,根据该待识别索引标识和硬链接的保存路径,生成该附件针对该应用程序的内容索引,并将该内容索引更新到索引数据库中,在用户在聊天界面中打开该附件时,在硬链接的保存路径调用该硬链接,并通过该硬链接访问该硬链接对应的源文件;数据库更新完成后,在聊天界面中,通过“接收成功”、“已接收附件”等标识来更新该附件对应的消息状态。
当所述待处理内容是通过所述应用程序向其他终端设备待转发的内容时,本申请实施例提供的一种查询方法还包括如下步骤:
S31:确定所述待处理内容的转发路径。
其中,转发是指对内容的转移发送,节点在接收到数据后,根据其目的地址进行处理并将其转发到目标节点的过程,转发路径是该数据的来源路径。例如,在图1所示的场景中,当用户接收到联系人A发来的文件1后,将对于联系人A聊天界面中的文件1转移至该应用程序中对于联系人B的聊天界面,并将该文件1发送给联系人B的过程即为转发,此时的转发路径为联系人A。除了同一应用程序中能够实现转发外,在不同应用程序之间也可以实现转发,例如,用户还可以将购物应用程序中的商品链接转发给社交应用程序中的联系人A,以分享该商品链接中的商品内容,此时的转发路径则为该购物应用程序。
S32:响应于所述转发路径与所述应用程序关联,为所述待处理内容建立基于所述转发路径的源内容的硬链接。
当转发路径与该应用程序关联时,即在同一应用程序内的转发,此时,由于待处理内容来自于该应用程序,所以在该应用程序的索引数据库中,一定保存有与该待处理内容的待识别索引标识相同的目标索引标识,因此可以直接从该索引数据库中进行索引查询,确定目标索引标识;在索引数据库中,该目标索引标识可能对应该待处理内容的源内容,也可能对应该源内容的一个硬链接,无论哪种形式,均可以为该待处理内容建立基于转发路径的源内容的硬链接。
S33:响应于所述转发路径与所述应用程序不关联,执行所述通过所述待识别索引标识查询所述应用程序的索引数据库的操作。
当转发路径与该应用程序不关联时,可以基于该待处理内容的待识别索引标识,在索引数据库中查询是否存在与该待识别索引标识相同的目标索引标识,以确定该应用程序中是否曾保存过与该待处理内容对应的相同内容,如果时,可以直接根据该相同内容,为待处理内容建立硬链接,避免对同一个内容的重复下载。
在内容转发场景下,根据转发路径或待识别索引标识确定终端设备通过该应用程序保存的已保存内容中,是否存在与待处理内容对应的相同内容,如果存在,直接根据该相同内容为待处理内容建立基于源内容的硬链接,提高了内容转发效率。
若通过待识别索引标识在该应用程序的索引数据库中未查询到与该待识别索引标识相同的目标索引标识,所述方法还包括:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并基于所述转发路径,通过所述应用程序将所述待处理内容复制到待转发界面。
当索引数据库中并不存在与该待识别索引标识相同的目标索引标识时,认为该待处理内容并不存在于终端设备通过该应用程序保存的已保存内容中,所以在进行该待处理内容的转发时,需要从转发路径中获取该待处理内容,并通过应用程序将该待处理内容复制到待转发界面中,以实现对于该待处理内容的转发。
当待处理内容并不存在于终端设备通过该应用程序保存的已保存内容中时,直接通过应用程序将该待处理内容复制到待转发界面中进行转发,保障了转发内容的准确性。
具体地,参见图6所示,当待处理内容为通过应用程序向其他终端设备待转发的内容时,首先根据待处理内容的转发路径,判断该转发路径是否在该应用程序内,如果是,说明该应用程序一定保存有该待处理内容对应的相关信息,该相关信息可能为待处理内容对应的源内容,也可能为该源内容所对应的硬链接,那么可以直接基于该应用程序中的已保存内容,为该待处理内容建立基于转发路径的硬链接;如果否,则根据该待处理内容的待识别索引标识,在索引数据库中进行索引查询,判断索引数据库中是否存在与该待识别索引标识相同的索引标识,即该应用程序曾经是否处理过于该待处理内容对应的相同内容,如果是,则该相同内容与待处理内容对应同一个源内容,根据该相同内容,可以为待识别索引标识建立基于源内容的硬链接;否则,直接从转发路径中获得该待处理内容,并通过应用程序将其复制到待转发界面中,实现对于该待处理内容的转发。
在终端设备中,通过应用程序保存的已保存内容中需要包括该已保存内容对应的保存路径,以便根据该保存路径确定已保存内容的具体位置。由于终端设备所生成的保存路径往往为非整型数据,因此为了进一步提高索引查询效率,需要对该路径项做进一步优化。
在一种可能的实现方式中,所述已保存内容包括第二内容,所述第二内容在所述索引数据库中有第二内容索引,所述第二内容索引包括第二索引标识和索引值,所述索引值包括用于标识所述第二内容的保存路径的路径项。
以已保存内容中的第二内容为例,索引数据库中保存有该第二内容对应的第二内容索引,该第二内容索引中包括第二内容的第二索引标识和索引值,其中,第二索引标识为整型数据,第二索引标识是根据第二内容的内容摘要标识对应的摘要整型数据、以及第二内容的内容容量确定的整型数据,用于在索引数据库中快速查询第二内容对应的第二内容索引;索引值是用于标识第二内容的保存路径的路径项,用于确定第二内容在终端设备存储空间中的具体位置。
所述路径项通过如下方式确定:
S41:根据所述第二内容的保存路径的路径字段类型,将所述第二内容的保存路径划分为固定字段、内容来源字段和内容名称字段,所述固定字段为所述已保存内容的保存路径中共同的路径字段,所述内容来源字段用于标识所述应用程序中提供所述第二内容的目标账号的账号标识,和保存所述第二内容的时间参数。
在第二内容的保存路径中,根据路径字段类型将保存路径划分为了多个组成部分,例如:
UserName/FileStorage/MsgAttach/TalkerMD5/(Image/File/Video)/年-月/FileName
UserName/FileStorage/(Image/File/Video)/年-月/FileName
在以上所示的保存路径中使用“/”对各个路径字段进行划分,根据路径字段类型,前三个路径字段UserName/FileStorage/MsgAttach是已保存内容共同的路径字段,终端设备中通过该应用程序保存的已保存内容均保存在该共同的路径字段对应的路径下,所以,将这一组成部分划分为固定字段。
TalkerMD5是用于标识该应用程序中提供第二内容的目标账号的账号标识,具体形式表现为目标账号对应的MD5值,该MD5值可以根据目标账号的账号身份标识号(Identity Document,ID)输入消息摘要算法后的输出值来确定,也可以根据目标账号中的用户信息或其他信息输入消息摘要算法后的数据值来确定,本申请对此不做限定。当用户删除该应用程序中的某个联系人账号时,可以根据该联系人账号对应账号标识,查找该账号标识对应的路径,并删除该路径下的所有内容。
年-月是用于描述该第二内容对应的保存时间的路径字段,也即保存第二内容的时间参数。
基于TalkerMD5和年-月这两个路径字段,可以确定第二内容的来源,即该第二内容是在何时、由哪个目标账号所提供的内容,因此将这两个路径字段划分为内容来源字段。
(Image/File/Video)路径字段用于描述第二内容的内容类型,该内容类型可以分为图像(Image)、文件(File)和视频(Video)三类,在索引数据库中保存第二内容索引时,可以根据该内容类型,直接将不同类型的第二内容索引分别保存,以节省保存该路径字段所占用的存储空间;FileName是用于描述该第二内容对应的内容名称的路径字段,例如,当第二内容对应的内容类型为文件时,该第二内容对应的内容名称则为该第二内容的文件名,因此将该路径字段划分为内容名称字段。
S42:舍弃所述固定字段,并根据所述内容来源字段的字段信息,通过整型映射得到对应的来源整型数据。
在对第二内容的保存路径进行优化时,由于所有通过该应用程序保存的已保存内容对应的保存路径中均包括固定字段,所以固定字段并不能起到对已保存内容进行区分的作用,也就可以将固定字段舍弃,节省部分存储空间。
在内容来源字段中,由于内容来源字段是根据该应用程序中提供第二内容的目标账号的账号标识,和保存所述第二内容的时间参数共同确定的,而该账号标识的数据类型可能为非整型数据,所以内容来源字段中的数据类型也可能为非整型数据;在数据保存时,由于非整型数据的数据组成相较于整型数据来说更复杂,各个位置可能的数据形式较多,所以在存储非整型数据时会占用较多的存储空间;而在一个应用程序中,所有内容对应的内容来源往往是有限的、可量化的,因此在对第二内容的保存路径进行优化时,可以对内容来源字段的字段信息进行整型映射,将各个内容来源字段映射为对应的来源整型数据,建立来源整型数据和内容来源字段之间的映射关系,相同的内容来源字段会对应相同的来源整型数据。
以社交应用程序为例,当该社交应用程序中的联系人数量为1万人、用户使用该社交应用程序的时间为10年时,使用整数1~10120即可实现对TalkerMd5和年-月两个路径字段的映射,进而实现了对于保存路径中的内容来源字段的映射,大大减少了在存储保存路径时对于存储空间的占用。
S43:通过所述来源整型数据和所述内容名称字段,确定所述路径项。
在该应用程序对应的存储空间中,根据来源整型数据与内容来源字段之间的映射关系,可以确定第二内容的内容来源字段;将内容来源字段与固定字段结合即可确定第二内容的具体保存位置,再根据内容名称字段,在该具体保存位置中查找该第二内容。也就是说,对于该应用程序而言,根据来源整型数据和内容名称字段,就能表示一条完整的保存路径,所以,在第二索引内容中,可以直接根据来源整型数据和内容名称字段,确定用于标识第二内容的保存路径的路径项。根据保存路径的字段类型,对第二内容索引中的路径项进行优化,节省了存储保存路径所占用的存储空间。
由于通过整型映射获得的来源整型数据之间可能重复,使得不同的内容来源字段对应相同的来源整型数据,为了降低来源整型数据之间的重复率,对来源整型数据做进一步优化。
在一种可能的实现方式中,所述来源整型数据包括第一整型数据子项和第二整型数据子项,S42中所描述的根据所述内容来源字段的字段信息,通过整型映射得到对应的来源整型数据,具体可以通过如下方式实现:
S51:根据所述内容来源字段用于标识所述账号标识的字段信息,通过整型映射规则得到对应的第一整型数据子项;
S52:根据所述内容来源字段用于标识所述时间参数的字段信息,通过所述整型映射规则得到对应的第二整型数据子项。
通过整型映射规则,对内容来源字段中用于标识账号标识的字段信息和用于标识时间参数的字段信息分别进行映射,得到账号标识对应的第一整型数据子项和时间参数对应的第二整型数据子项。在来源整型数据中,第一整型数据子项和第二整型数据子项将来源整型数据中包含的账号信息和时间参数区分开,分别进行映射所获得的独立整型数据子项,将两次映射获得的两个独立整型数据子项结合,确定该内容来源字段对应的来源整型数据,进一步降低了不同内容来源字段所对应的来源整型数据之间的重复率。
在获得第二内容的保存路径时,需要根据来源整型数据,还原出第二内容对应的来源字段信息,再将该来源字段信息与应用程序对应的固定字段、路径项中的内容名称字段结合,获得该第二内容对应的完整保存路径。为此,本申请实施例在索引数据库中还保存了用于对来源整型数据进行还原的还原索引表。
在一种可能的实现方式中,所述索引数据库还包括针对所述整型映射规则的还原索引表,在S52之后,本申请实施例所述的方法还可以包括如下步骤:
S61:获取针对所述第二内容的保存路径的获取请求,所述获取请求包括所述第二内容的第二索引标识;
S62:根据所述第二索引标识,从所述索引数据库查找所述第二内容索引中的索引值。
使用针对第二内容保存路径的获取请求中,第二内容的第二索引标识,从应用程序的索引数据库中进行索引查询,快速确定包含该第二索引标识的第二内容索引,由于第二内容索引中包括第二索引标识和索引值,因此确定第二内容索引后,可以直接从该第二内容索引中,查找到该第二内容对应的索引值。
S63:根据所述索引值的路径项中的所述第一整型数据子项和所述第二整型数据子项,通过所述还原索引表还原得到所述账号标识和所述时间参数。
还原索引表是根据整型映射规则生成的,其中保存了根据整型映射规则进行映射后,内容来源字段中用于标识账号标识的字段信息与第一整型数据子项之间的映射关系,以及用于标识时间参数的字段信息与第二整型数据子项之间的映射关系。
索引值是用于标识第二内容的保存路径的路径项,在S51、S52中,使用整型映射规则对该路径项内容来源字段中的账号标识和时间参数分别进行映射,获得了第一整型数据子项和第二整型数据子项,在索引数据库的第二内容索引中,用第一整型数据子项和第二整型数据子项保存第二内容的保存路径中的内容来源字段;当需要获取第二内容的保存路径时,需要使用针对整型映射规则的还原索引表,获得第一整型数据子项与标识账号标识的字段信息之间的映射关系,以及第二整型数据子项与标识时间参数的字段信息之间的映射关系,基于这两种映射关系,将第一整型数据子项还原为其对应的账号标识,将第二整型数据子项还原为其对应的时间参数。
S64:通过所述账号标识、所述时间参数、所述固定字段和所述路径项中的内容名称字段,生成所述第二内容的保存路径。
根据第一整型数据子项还原出的标识账号标识的字段信息、第二整型数据子项还原出的标识时间参数的字段信息,可以获得第二内容的保存路径中的内容来源字段,再结合该应用程序对应的固定字段以及路径项中的内容名称字段,进行路径拼接,即可生成该第二内容对应的完整的保存路径。
根据针对整型映射规则的还原索引表,可以通过第一整型数据子项和第二整型数据子项快速、准确地确定第二内容保存路径中的内容来源字段,并结合固定字段、内容名称字段确定该第二内容的保存路径,提高了获取第二内容的保存路径的准确率和效率。
在第二内容通过应用程序被下载并保存在终端设备后,用户可以在该终端设备中对第二内容进行修改,那么被修改后的内容与最初通过应用程序下载的第二内容并不相同。当该应用程序再次接收到第二内容对应的相同内容时,会基于索引数据库中保存的第二内容索引,将该相同内容与被修改后的内容链接在一起,但此时该相同内容与被修改后的内容并不相同。
为此,在一种可能的实现方式中,所述索引值还包括所述第二内容的内容摘要标识和所述第二内容通过所述应用程序的最新修改时间。
在索引值中引入第二内容的内容摘要标识,用于验证在索引数据库中查询到的相同索引标识所对应的内容与第二内容是否相同,以避免不同内容对应相同索引标识时,在不同内容之间建立硬链接。
当第二内容通过应用程序在终端设备中保存后又被修改时,会基于该修改的完成时间,确定该第二内容通过应用程序的最新修改时间,在索引值中引入该最新修改时间,可以在索引查询时,根据这一最新修改时间与第二内容的保存时间是否相同,确定第二内容是否通过该应用程序被修改。
具体地,当第二内容对应的内容类型为文件时,第二内容索引中包括该文件的内容摘要标识(MD5)、文件大小(FileSize)、修改时间(ModifyTime)和保存路径(FilePath)四种参数。其中,第二内容索引中的第二索引标识由第二内容的MD5和文件大小确定;第二内容索引中的索引值由修改时间和保存路径确定,四种参数各自对应的数据类型如下表所示:
表1
参数名称 | MD5 | FileSize | ModifyTime | FilePath |
数据类型 | TEXT | INT | INT | TEXT |
其中,MD5是该第二内容对应的摘要内容标识,数据类型为字符串数据(TEXT),是一种非整型数据;文件大小为整型数据(INT),在根据MD5和文件大小确定该第二内容对应的第二索引标识时,通过对该摘要内容标识进行整型映射,获得其对应的摘要整型数据,再基于摘要整型数据和文件大小确定该第二索引标识(MD5hash),由于摘要整型数据和文件大小均为整型数据,所以第二索引标识也为整型数据。
同样地,由于保存路径对应的数据类型也为TEXT,TEXT类型的数据在保存时需要占用较多的存储空间,所以通过整型映射规则对保存路径中的数据来源字段进行映射,获得用于标识账号标识的字段信息对应的第一整型数据子项(DirID1)和用于标识时间参数的字段信息对应的第二整型数据子项(DirID2),根据第一整型数据子项和第二整型数据子项确定第二内容对应的来源整型数据,以优化索引值中内容来源字段的数据结构,节省对内容来源字段进行保存占用的存储空间。
在第二内容索引的索引值中,还引入了用于验证的第二内容对应的内容摘要标识(MD5)、修改时间和文件名称(FileName),此时MD5的数据类型为二进制大对象(BinaryLarge Object,BLOB),修改时间的数据类型为INT,文件名称的数据类型为TEXT。
优化后的各参数及其数据类型,如下表所示:
表2
参数名称 | MD5hash | DirID1 | DirID2 | MD5 | ModifyTime | FileName |
数据类型 | INT | INT | INT | BLOB | INT | TEXT |
其中,第二索引标识(MD5hash)是根据第二内容对应的摘要整型数据和第二内容的内容容量共同确定的整型数据,用于从索引数据库中的多个索引标识中查找出与该第二索引标识相同的索引标识,目的在于保障索引查询的高效性。
优化后MD5的数据类型为二进制大对象(Binary Large Object,BLOB),此处的MD5用于对索引查询的结果进行一对一的验证,由于MD5是根据第二内容确定的唯一性标识,所以根据MD5可以准确判断该相同的索引标识对应的已保存内容是否是该第二内容,目的在于保障索引查询的准确性。
在索引数据库中,针对整型映射规则的还原索引表如下表所示:
表3
参数名称 | DirIDx | Path |
数据类型 | INT | TEXT |
其中,Path为第二内容保存路径中的内容来源字段中的字段信息,包括用于标识账号标识的字段信息和用于标识时间参数的字段信息,DirIDx为通过整型映射规则为前述字段信息确定的映射值,即第一整型数据子项(x为1)或第二整型数据子项(x为2)。根据还原索引表中,可以还原第一整型数据子项和第二数据子项对应的内容来源字段中的字段信息,节省保存完整的内容来源字段信息时所占用的存储空间。
根据MD5hash在索引数据库中进行索引查询,可以快速确定具有相同索引标识的第二索引内容,节省了索引查询所花费的时间,提高了索引查询效率,保障了索引查询的高效性;通过MD5和ModifyTime,可以对第二索引内容对应的第二内容进行验证,确定当前MD5hash对应的内容与该第二内容是否相同,进一步保障了索引查询的准确性;基于该应用程序的固定字段以及第二索引内容中的DirID1、DirID2、FileName进行路径拼接,可以获得第二内容对应的完整的保存路径,节省了在数据库中存储保存路径所需的存储资源。
参见图7所示,当数据量为100万条时,原始方案在索引数据库中保存非整型数据的MD5和保存路径,需要占用225兆字节(M)的存储空间,而优化方案中,对非整形数据的MD5和保存路径进行优化,在数据库中保存优化后的索引内容,仅需占用120M的存储空间,二者相比较,优化方案能够节省47%的存储空间;优化方案中使用为整型数据的第二索引标识在索引数据库中进行索引查询,所需的查询时长为1.2毫秒(ms),相较于原始方案中使用非整型数据的MD5进行索引查询需要2.6ms,节省了53%的索引查询时间,提升了索引查询效率。
当需要对第二内容对应的多个硬链接进行批量处理时,若根据多个硬链接各自对应的索引标识在索引数据库中进行查询,则会占用大量的系统资源,此时,由于在硬链接在一起的文件中,更改其中一个文件,其他硬链接在一起的文件都会一起改变,所以可以根据第二索引内容中的最新修改时间,来快速查找出这些硬链接在一起的文件。
在一种可能的实现方式中,所述第二内容被创建有N个硬链接,N>1,所述索引数据库中包括所述N个硬链接对应的索引内容,所述方法还包括:
S71:将所述N个硬链接中的目标硬链接从只读状态切换为可写状态。
在对终端设备中通过应用程序保存的已保存内容对应的硬链接进行管理时,可以使用应用程序编程接口(Application Programming Interface,API)。但如果当前待处理的目标硬链接为只读状态时,API无法对只读状态的目标硬链接进行修改,所以需要将该目标硬链接从只读状态切换至可写状态。
S72:当所述目标硬链接被通过所述应用程序删除时,根据所述目标硬链接的删除时间,从所述索引数据库中查询到索引值中最新修改时间和所述删除时间相同的N-1个内容索引。
当通过应用程序对目标硬链接进行删除时,与该目标硬链接关联的其他硬链接对应的索引内容中,会根据该目标硬链接被删除的时间更新索引内容中的最新修改时间;通过目标硬链接被删除时对应的最新修改时间,从索引数据库中可以快速查找到具有相同的最新修改时间的内容索引,这些内容索引对应的硬链接即为与目标硬链接关联的N-1个硬链接,从而节省了根据第二内容对应的N个硬链接的索引标识,在索引数据库中逐一查找该索引标识对应的硬链接的时间。
S73:将所述N-1个内容索引对应的N-1个硬链接的文件状态从可写状态切换为只读状态。
在删除目标硬链接后,根据目标硬链接被删除时对应的最新修改时间,从索引数据库中快速查找到具有相同的最新修改时间的N-1个内容索引,并将前述N-1个内容索引所对应的硬链接的文件状态再次切换回只读状态,实现了对该目标硬链接相关联的N-1个硬链接的快速定位,并将前述N-1个硬链接的文件状态进行还原,节省了对多个内容进行索引查询所消耗的算力,提高了内容管理效率。
基于以上所述的方法,为应用程序更新并配置这种查询方法时,需要对终端设备中通过该应用程序保存的已保存内容进行去重,降低这些已保存内容中相同内容的重复,释放存储空间。为此,本申请实施例提供了一种构建索引数据库的方式,具体包括如下步骤:
S81:获取通过所述应用程序保存的待处理已保存内容。
在应用程序更新前,终端设备中尚未配置本申请实施例所述的查询方法,因此在用户使用该应用程序的过程中,该终端设备通过应用程序保存的已保存内容中,可能存在对相同内容的重复保存,因此在应用程序更新时,为了减少这些已保存内容中的重复率,需要将前述已保存内容确定为待处理已保存内容,对这些待处理已保存内容进行去重,以降低其中相同内容的重复率。
S82:根据所述待处理已保存内容的内容摘要标识,通过整型映射得到对应的待处理摘要整型数据;
S83:基于所述待处理摘要整型数据和所述待处理已保存内容的内容容量,确定所述待处理已保存内容的索引标识。
其中,S82~S83可以参照步骤202~步骤203中所描述的方法来执行。
S84:响应于所述待处理已保存内容中具有相同索引标识的多个待处理已保存内容,将所述多个待处理已保存内容中一个待处理已保存内容作为目标已保存内容,其他待处理已保存内容进行删除,并对所述其他待处理已保存内容建立基于所述目标已保存内容的硬链接。
通过遍历用户的文件夹,对遍历出的每一个待处理已保存内容都确定索引标识后,可以根据索引标识对待处理已保存内容进行分组,将具有相同索引标识的待处理内容分在同一组,从这一组中多个具有相同索引标识的待处理已保存内容中,确定出一个待处理已保存内容作为该组对应的目标已保存内容,将该组其他待处理已保存内容删除,释放这部分重复内容所占用的存储空间,并基于目标已保存内容为该组其他待处理已保存内容建立硬链接,该组其他待处理已保存内容则以硬链接的形式与该组对应的目标已保存内容进行链接,通过各自对应的硬链接访问该目标已保存内容,节省了已保存内容中重复内容所占用的存储空间。
需要说明的是,从多个具有相同索引标识的待处理已保存内容中,确定一个目标已保存内容时,可以该多个待处理已保存内容中随机选择一个目标已保存内容,也可以根据保存时间等其他参数来确定一个目标已保存内容,本申请对此不做限定。
S85:将剩余的目标已保存内容作为所述已保存内容,并根据所述已保存内容的索引标识,构建所述索引数据库。
确定各个索引标识唯一对应的目标已保存内容后,这些目标已保存内容即为终端设备通过应用程序保存的已保存内容,降低了对待处理已保存内容的重复率,使得每个索引标识在前述已保存内容中有且仅有一个对应的具体内容被保存在终端设备中,有效节省了对同一内容重复保存所占用的存储空间。基于这些已保存内容的索引标识,建立索引数据库,当该应用程序中接收到新内容时,可以根据新内容的索引标识,从索引数据库中快速查询已保存内容中是否存在与该新内容相同的已保存内容,节省了索引查询的时间,提高了索引查询的效率。
进一步地,由于在对终端设备中的应用程序进行更新、配置该查询方法时,通过该应用程序保存的待处理已保存内容数量可能较多,对这些内容进行一次性处理会占用大量的中央处理器(Central Processing Unit,CPU)资源和磁盘资源,所以需要控制单位时间内的资源占用量。为此,本申请实施例在对应用程序更新所述查询方法时,可以在机械硬盘中采用处理5ms、休息995ms的处理频率,在固态硬盘中采用处理10ms,休息990ms的处理频率,以减少单位时间内的资源占用量,以免影响用户使用该终端设备。
参见图8所示,本申请实施例提供了一种查询装置,所述装置包括:获取单元801、整型映射单元802、确定单元803、查询单元804和硬链接单元805;
所述获取单元801,用于:通过应用程序获取待处理内容;
所述整型映射单元802,用于根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;
所述确定单元803,用于:基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识;
所述查询单元804,用于:通过所述待识别索引标识查询所述应用程序的索引数据库,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识;
所述硬链接单元805,用于:响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
在一种可能的实现方式中,当所述待处理内容是通过所述应用程序接收且尚未下载的内容时,图8所示的装置还包括保存单元,用于:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并通过所述应用程序对所述待处理内容进行保存。
在一种可能的实现方式中,图8所示的装置还包括更新单元,用于:
根据所述待识别索引标识和所述待处理内容的保存路径,生成所述待处理内容针对所述应用程序的第一内容索引;
将所述第一内容索引更新至所述索引数据库中。
在一种可能的实现方式中,当所述待处理内容是通过所述应用程序向其他终端设备待转发的内容时,所述查询单元还用于:
确定所述待处理内容的转发路径;
响应于所述转发路径与所述应用程序关联,为所述待处理内容建立基于所述转发路径的源内容的硬链接;
响应于所述转发路径与所述应用程序不关联,执行所述通过所述待识别索引标识查询所述应用程序的索引数据库的操作。
在一种可能的实现方式中,图8所示的装置还包括复制单元,用于:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并基于所述转发路径,通过所述应用程序将所述待处理内容复制到待转发界面。
在一种可能的实现方式中,在所述为所述待处理内容建立基于所述第一内容的第一硬链接之后,图8所示的装置还包括更新单元,用于:
根据所述待识别索引标识和所述第一硬链接的保存路径,生成所述第一硬链接针对所述应用程序的第二内容索引;
将所述第二内容索引更新至所述索引数据库中。
在一种可能的实现方式中,所述已保存内容包括第二内容,所述第二内容在所述索引数据库中有第二内容索引,所述第二内容索引包括第二索引标识和索引值,所述索引值包括用于标识所述第二内容的保存路径的路径项;
所述确定单元具体用于:
根据所述第二内容的保存路径的路径字段类型,将所述第二内容的保存路径划分为固定字段、内容来源字段和内容名称字段,所述固定字段为所述已保存内容的保存路径中共同的路径字段,所述内容来源字段用于标识所述应用程序中提供所述第二内容的目标账号的账号标识,和保存所述第二内容的时间参数;
舍弃所述固定字段,并根据所述内容来源字段的字段信息,通过整型映射得到对应的来源整型数据;
通过所述来源整型数据和所述内容名称字段,确定所述路径项。
在一种可能的实现方式中,所述来源整型数据包括第一整型数据子项和第二整型数据子项,所述确定单元具体用于:
根据所述内容来源字段用于标识所述账号标识的字段信息,通过整型映射规则得到对应的第一整型数据子项;
根据所述内容来源字段用于标识所述时间参数的字段信息,通过所述整型映射规则得到对应的第二整型数据子项。
在一种可能的实现方式中,所述索引数据库还包括针对所述整型映射规则的还原索引表,图8所示的装置还包括还原单元,用于:
获取针对所述第二内容的保存路径的获取请求,所述获取请求包括所述第二内容的第二索引标识;
根据所述第二索引标识,从所述索引数据库查找所述第二内容索引中的索引值;
根据所述索引值的路径项中的所述第一整型数据子项和所述第二整型数据子项,通过所述还原索引表还原得到所述账号标识和所述时间参数;
通过所述账号标识、所述时间参数、所述固定字段和所述路径项中的内容名称字段,生成所述第二内容的保存路径。
在一种可能的实现方式中,所述索引值还包括所述第二内容的内容摘要标识和所述第二内容通过所述应用程序的最新修改时间。
在一种可能的实现方式中,所述第二内容被创建有N个硬链接,N>1,所述索引数据库中包括所述N个硬链接对应的索引内容,图8所示的装置还包括删除单元,用于:
将所述N个硬链接中的目标硬链接从只读状态切换为可写状态;
当所述目标硬链接被通过所述应用程序删除时,根据所述目标硬链接的删除时间,从所述索引数据库中查询到索引值中最新修改时间和所述删除时间相同的N-1个内容索引;
将所述N-1个内容索引对应的N-1个硬链接的文件状态从可写状态切换为只读状态。
在一种可能的实现方式中,图8所示的装置还包括构建单元,用于:
获取通过所述应用程序保存的待处理已保存内容;
根据所述待处理已保存内容的内容摘要标识,通过整型映射得到对应的待处理摘要整型数据;
基于所述待处理摘要整型数据和所述待处理已保存内容的内容容量,确定所述待处理已保存内容的索引标识;
响应于所述待处理已保存内容中具有相同索引标识的多个待处理已保存内容,将所述多个待处理已保存内容中一个待处理已保存内容作为目标已保存内容,其他待处理已保存内容进行删除,并对所述其他待处理已保存内容建立基于所述目标已保存内容的硬链接;
将剩余的目标已保存内容作为所述已保存内容,并根据所述已保存内容的索引标识,构建所述索引数据库。
本申请实施例还提供了一种计算机设备,该计算机设备为前述介绍的计算机设备,可以包括终端设备或服务器,前述的查询装置可以配置在该计算机设备中。下面结合附图对该计算机设备进行介绍。
若该计算机设备为终端设备,请参见图9所示,本申请实施例提供了一种终端设备,以终端设备为手机为例:
图9示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图9,手机包括:射频(Radio Frequency,简称RF)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图9对手机的各个构成部件进行具体的介绍:
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入设备1432。
显示单元1440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1440可包括显示面板1441。
手机还可包括至少一种传感器1450,比如光传感器、运动传感器以及其他传感器。
音频电路1460、扬声器1461,传声器1462可提供用户与手机之间的音频接口。
WiFi属于短距离无线传输技术,手机通过WiFi模块1470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。
处理器1480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1420内的软件程序和/或模块,以及调用存储在存储器1420内的数据,执行手机的各种功能和处理数据。
手机还包括给各个部件供电的电源1490(比如电池)。
在本实施例中,该终端设备所包括的处理器1480还具有以下功能:
通过应用程序获取待处理内容;
根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;
基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识;
通过所述待识别索引标识查询所述应用程序的索引数据库,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识;
响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
若计算机设备为服务器,本申请实施例还提供一种服务器,请参见图10所示,图10为本申请实施例提供的服务器1500的结构图,服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。
服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于图10所示的服务器结构。
另外,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于执行上述实施例提供的方法。
本申请实施例还提供了一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得计算机设备执行上述实施例提供的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:Read-only Memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储计算机程序的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。而且本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (16)
1.一种查询方法,其特征在于,所述方法包括:
通过应用程序获取待处理内容;
根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;
基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识;
通过所述待识别索引标识查询所述应用程序的索引数据库,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识;
响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
2.根据权利要求1所述的方法,其特征在于,当所述待处理内容是通过所述应用程序接收且尚未下载的内容时,所述方法还包括:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并通过所述应用程序对所述待处理内容进行保存。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述待识别索引标识和所述待处理内容的保存路径,生成所述待处理内容针对所述应用程序的第一内容索引;
将所述第一内容索引更新至所述索引数据库中。
4.根据权利要求1所述的方法,其特征在于,当所述待处理内容是通过所述应用程序向其他终端设备待转发的内容时,所述方法还包括:
确定所述待处理内容的转发路径;
响应于所述转发路径与所述应用程序关联,为所述待处理内容建立基于所述转发路径的源内容的硬链接;
响应于所述转发路径与所述应用程序不关联,执行所述通过所述待识别索引标识查询所述应用程序的索引数据库的操作。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述索引数据库中不具有与所述待识别索引标识相同的目标索引标识,确定所述已保存内容中不具有所述待处理内容,并基于所述转发路径,通过所述应用程序将所述待处理内容复制到待转发界面。
6.根据权利要求1所述的方法,其特征在于,在所述为所述待处理内容建立基于所述第一内容的第一硬链接之后,所述方法还包括:
根据所述待识别索引标识和所述第一硬链接的保存路径,生成所述第一硬链接针对所述应用程序的第二内容索引;
将所述第二内容索引更新至所述索引数据库中。
7.根据权利要求1所述的方法,其特征在于,所述已保存内容包括第二内容,所述第二内容在所述索引数据库中有第二内容索引,所述第二内容索引包括第二索引标识和索引值,所述索引值包括用于标识所述第二内容的保存路径的路径项;
所述路径项通过如下方式确定:
根据所述第二内容的保存路径的路径字段类型,将所述第二内容的保存路径划分为固定字段、内容来源字段和内容名称字段,所述固定字段为所述已保存内容的保存路径中共同的路径字段,所述内容来源字段用于标识所述应用程序中提供所述第二内容的目标账号的账号标识,和保存所述第二内容的时间参数;
舍弃所述固定字段,并根据所述内容来源字段的字段信息,通过整型映射得到对应的来源整型数据;
通过所述来源整型数据和所述内容名称字段,确定所述路径项。
8.根据权利要求7所述的方法,其特征在于,所述来源整型数据包括第一整型数据子项和第二整型数据子项,所述根据所述内容来源字段的字段信息,通过整型映射得到对应的来源整型数据,包括:
根据所述内容来源字段用于标识所述账号标识的字段信息,通过整型映射规则得到对应的第一整型数据子项;
根据所述内容来源字段用于标识所述时间参数的字段信息,通过所述整型映射规则得到对应的第二整型数据子项。
9.根据权利要求8所述的方法,其特征在于,所述索引数据库还包括针对所述整型映射规则的还原索引表,所述方法还包括:
获取针对所述第二内容的保存路径的获取请求,所述获取请求包括所述第二内容的第二索引标识;
根据所述第二索引标识,从所述索引数据库查找所述第二内容索引中的索引值;
根据所述索引值的路径项中的所述第一整型数据子项和所述第二整型数据子项,通过所述还原索引表还原得到所述账号标识和所述时间参数;
通过所述账号标识、所述时间参数、所述固定字段和所述路径项中的内容名称字段,生成所述第二内容的保存路径。
10.根据权利要求7所述的方法,其特征在于,所述索引值还包括所述第二内容的内容摘要标识和所述第二内容通过所述应用程序的最新修改时间。
11.根据权利要求10所述的方法,其特征在于,所述第二内容被创建有N个硬链接,N>1,所述索引数据库中包括所述N个硬链接对应的索引内容,所述方法还包括:
将所述N个硬链接中的目标硬链接从只读状态切换为可写状态;
当所述目标硬链接被通过所述应用程序删除时,根据所述目标硬链接的删除时间,从所述索引数据库中查询到索引值中最新修改时间和所述删除时间相同的N-1个内容索引;
将所述N-1个内容索引对应的N-1个硬链接的文件状态从可写状态切换为只读状态。
12.根据权利要求1-11任意一项所述的方法,其特征在于,所述方法还包括:
获取通过所述应用程序保存的待处理已保存内容;
根据所述待处理已保存内容的内容摘要标识,通过整型映射得到对应的待处理摘要整型数据;
基于所述待处理摘要整型数据和所述待处理已保存内容的内容容量,确定所述待处理已保存内容的索引标识;
响应于所述待处理已保存内容中具有相同索引标识的多个待处理已保存内容,将所述多个待处理已保存内容中一个待处理已保存内容作为目标已保存内容,其他待处理已保存内容进行删除,并对所述其他待处理已保存内容建立基于所述目标已保存内容的硬链接;
将剩余的目标已保存内容作为所述已保存内容,并根据所述已保存内容的索引标识,构建所述索引数据库。
13.一种查询装置,其特征在于,所述装置包括:获取单元、整型映射单元、确定单元、查询单元和硬链接单元;
所述获取单元,用于:通过应用程序获取待处理内容;
所述整型映射单元,用于根据所述待处理内容的内容摘要标识,通过整型映射得到对应的摘要整型数据;
所述确定单元,用于:基于所述摘要整型数据和所述待处理内容的内容容量,确定所述待处理内容的待识别索引标识;
所述查询单元,用于:通过所述待识别索引标识查询所述应用程序的索引数据库,所述索引数据库用于记录通过所述应用程序保存的已保存内容的索引标识;
所述硬链接单元,用于:响应于所述索引数据库中具有与所述待识别索引标识相同的目标索引标识,确定所述待处理内容与所述目标索引标识对应的第一内容为相同内容,并为所述待处理内容建立基于所述第一内容的第一硬链接。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序执行权利要求1-12中任意一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-12中任意一项所述的方法。
16.一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得所述计算机设备执行权利要求1-12中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310514461.XA CN116955282A (zh) | 2023-05-08 | 2023-05-08 | 一种查询方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310514461.XA CN116955282A (zh) | 2023-05-08 | 2023-05-08 | 一种查询方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955282A true CN116955282A (zh) | 2023-10-27 |
Family
ID=88453708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310514461.XA Pending CN116955282A (zh) | 2023-05-08 | 2023-05-08 | 一种查询方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955282A (zh) |
-
2023
- 2023-05-08 CN CN202310514461.XA patent/CN116955282A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019200714A1 (zh) | 服务器连接方法、计算机可读存储介质、终端设备及装置 | |
CN110489059B (zh) | 数据集群存储的方法、装置及计算机设备 | |
CN107786638B (zh) | 一种数据处理方法、装置及系统 | |
WO2011148039A1 (en) | Method and apparatus for eventually consistent delete in a distributed data store | |
US10051552B2 (en) | Method for realizing resource attribute notification, and common service entity | |
CN104331343A (zh) | 文件备份方法和系统 | |
CN113282941A (zh) | 获取对象标识的方法、装置、电子设备及存储介质 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
US11128622B2 (en) | Method for processing data request and system therefor, access device, and storage device | |
CN109088914B (zh) | 区块的生成方法、区块链生态系统及计算机可读存储介质 | |
CN112039993B (zh) | 一种长连接地址处理方法和装置 | |
CN117176796A (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN112579877A (zh) | 信源系统的控制方法、装置、存储介质和设备 | |
CN110555020B (zh) | 一种映射关系建立、数据查询方法、装置及设备 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
CN112988879A (zh) | 访问数据库的方法、系统、装置、存储介质及处理器 | |
CN116955282A (zh) | 一种查询方法和相关装置 | |
CN109857719B (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 | |
CN109325057B (zh) | 中间件管理方法、装置、计算机设备以及存储介质 | |
WO2023143061A1 (zh) | 一种数据访问方法及其数据访问系统 | |
JP2014235583A (ja) | データ移行システム、及びデータ移行方法 | |
CN115114361B (zh) | 一种基于容器云平台统一接口的资源检索方法和系统 | |
US11445036B1 (en) | Cluster management method and apparatus, electronic device and storage medium | |
CN111404979B (zh) | 业务请求处理的方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |