CN111506268B - 代码文件存储方法、装置和电子设备 - Google Patents
代码文件存储方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111506268B CN111506268B CN202010305891.7A CN202010305891A CN111506268B CN 111506268 B CN111506268 B CN 111506268B CN 202010305891 A CN202010305891 A CN 202010305891A CN 111506268 B CN111506268 B CN 111506268B
- Authority
- CN
- China
- Prior art keywords
- code
- file
- target
- code file
- value
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000015654 memory Effects 0.000 claims description 20
- 239000002699 waste material Substances 0.000 abstract description 15
- 238000013500 data storage Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了代码文件存储方法、装置和电子设备,涉及数据存储领域。具体实现方案为:获取目标代码库,所述目标代码库包括至少一个代码文件;根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。这样,若目标代码库中有多个代码文件的文件内容相同,只会存储一份文件内容,避免了相同文件内容的重复存储,减少了存储资源的浪费,降低了存储成本。
Description
技术领域
本申请涉及数据处理技术领域中的数据存储技术,尤其涉及一种代码文件存储方法、装置和电子设备。
背景技术
代码搜索是现代程序开发过程中最重要手段之一。在内容寻址文件***的不同代码库中,或者在代码库的不同分支中,可能会存在文件内容相同的代码文件,也就是说,文件内容相同的代码文件存在重复存储的情况,使得在代码文件数量比较多的情况下,需要大量的存储空间来存储代码文件,造成存储空间浪费。
发明内容
本申请实施例提供一种代码文件存储方法、装置和电子设备,以解决文件内容相同的代码文件存在重复存储,造成存储空间浪费的问题。
为解决上述技术问题,本申请是这样实现的:
本申请第一方面提供一种代码文件存储方法,包括:
获取目标代码库,所述目标代码库包括至少一个代码文件;
根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;
根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。
本申请第二方面提供一种代码文件存储装置,包括:
第一获取模块,用于获取目标代码库,所述目标代码库包括至少一个代码文件;
第二获取模块,用于根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;
存储模块,用于根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。
本申请第三方面提供一种电子设备,其特征在于,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
本申请第四方面提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:获取目标代码库,所述目标代码库包括至少一个代码文件;根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。这样,若目标代码库中有多个代码文件的文件内容相同,也只会存储一份文件内容,避免了相同文件内容的重复存储,减少了存储资源的浪费,降低了存储成本。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的代码文件存储方法的流程图之一;
图2是本申请实施例提供的文件索引和代码索引之间的关系图;
图3是本申请实施例提供的代码文件存储方法的流程图之二;
图4是本申请实施例提供的代码文件存储方法的流程图之三;
图5是本申请实施例提供的代码文件存储装置的结构图;
图6是用来实现本申请实施例的代码文件存储方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,图1是本申请实施例提供的代码文件存储方法的流程图,如图1所示,本实施例提供一种代码文件存储方法,应用于电子设备,包括以下步骤:
步骤101、获取目标代码库,所述目标代码库包括至少一个代码文件。
内容寻址文件***(例如Git)可包括多个代码库中,目标代码库可为这多个代码库中的一个,用户可通过下载的方式获得目标代码库,目标代码库包括一个或多个代码文件,具体的,目标代码库可包括多个分支,各个分支包括一个或多个代码文件。代码文件可理解为文件内容为代码的文件。
步骤102、根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值。
所述摘要值集合包括一个目标摘要值或多个不同的目标摘要值,所述目标摘要值根据所述至少一个代码文件中的代码文件的文件内容确定,文件内容相同的多个代码文件对应一个目标摘要值。在根据代码文件的文件内容确定目标摘要值时,可根据哈希算法对文件内容进行处理,获得目标摘要值。
步骤103、根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。
根据摘要值结合中的各个目标摘要值,对目标摘要值对应的代码文件进行存储。针对每个目标摘要值只存储一个代码文件,即若一个目标摘要值对应多个代码文件,由于这多个代码文件的文件内容相同,则只存储一个代码文件的文件内容,以避免重复存储,减少存储资源的浪费。
本实施例中,获取目标代码库,所述目标代码库包括至少一个代码文件;根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。这样,若目标代码库中有多个代码文件的文件内容相同,也只会存储一份文件内容,避免了相同文件内容的重复存储,减少了存储资源的浪费,降低了存储成本。
在本申请一个实施例中,步骤103、根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,包括:
对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值与数据库的代码索引进行匹配,所述代码索引包括已有摘要值,以及与所述已有摘要值对应的已有代码文件;
若所述目标摘要值与所述代码索引的已有摘要值匹配不成功,则将所述目标摘要值,以及所述目标摘要值对应的一个代码文件的文件内容存储在所述代码索引中。
具体的,数据库用于存储代码文件的文件内容,数据库可为分布式存储搜索引擎(Elasticsearch,简称ES)。数据库包括代码索引,代码索引也可称为code索引。代码索引包括代码文件的文件内容,具体可为代码文件的文件内容的快照。代码索引包括字段标识,字段标识存储代码文件的摘要值,摘要值根据代码文件的文件内容确定。若多个代码文件的文件内容相同,则这多个代码文件的摘要值也相同,此种情况下,在代码索引中只存一份,这样,可以避免对相同文件内容的重复存储。进一步的,若所述目标摘要值与所述代码索引的已有摘要值匹配成功,说明代码索引中已存在目标摘要值,则不需要向代码索引中添加新数据。
为便于区分,本实施例中将代码索引包括的摘要值称为已有摘要值,将代码索引包括的代码文件称为已有代码文件。
对于摘要值集合中的一个目标摘要值,将该目标摘要值与代码索引的已有摘要值进行匹配,若目标摘要值与已有摘要值不相同,则匹配不成功,将目标摘要值,以及目标摘要值对应的一个代码文件的文件内容存储在代码索引中。也就是说,若目标摘要值对应的代码文件有多个,则这多个代码文件的文件内容相同,那么在存储这多个代码文件时,存储这多个代码文件中的一个代码文件的文件内容即可。对于摘要值集合中的每一个目标摘要值都采用上述方式进行处理。
本实施例中,可避免文件内容相同的多个代码文件的重复存储,节省存储空间,并且在对代码文件进行搜索时,减少了代码文件的搜索范围,因为缩小了查询时需要访问的倒排索引和代码文件数。代码索引中的每一项为目标摘要值和代码文件的文件内容,根据目标摘要值可查找代码文件的文件内容,代码索引可视为倒排索引。进一步的,代码索引中的文件内容,可以为文件内容本身,也可以为文件内容的地址。
本实施例中,在目标摘要值与所述代码索引的已有摘要值匹配不成功时,将所述目标摘要值,以及所述目标摘要值对应的一个代码文件的文件内容存储在所述代码索引中,以避免相同文件内容的重复存储,减少存储空间的浪费。由于相同文件内容的多个代码文件,代码索引中只存储了一份文件内容,也减少了代码索引中的数据存储量,这样,在代码索引中搜索代码文件时,可减少代码文件搜索的搜索范围,提高代码文件搜索的效率。
在本申请一个实施例中,步骤103、根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,包括:
对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在所述数据库的文件索引中。
数据库还包括文件索引,文件索引可包括两个字段,第一个字段用于存储代码文件的文件信息,第二个字段用于存储代码文件的摘要值,也就是说文件索引可用于存储代码文件的文件信息和摘要值。文件信息也可称为元数据信息,文件信息可包括代码文件所在的代码库名称、存放地址、代码文件所在的分支信息、代码文件的文件名、代码文件提交到代码库的时间、提交者等等。代码索引中,摘要值可视为代码内容的指针,也可以称为外键,根据摘要值可以从代码索引中获取到代码文件的文件内容,根据摘要值可以从文件索引中获取到代码文件的文件信息。
图2所示为文件索引与代码索引之间的关系图,文件索引与代码索引之间通过摘要值进行关联,文件索引中的多个文件信息可以与代码索引中的一个文件内容相对应,反过来说,即代码索引中的一个文件内容可以与代码索引中的多个文件信息相对应。
在本实施例中,若所述目标摘要值与所述代码索引的已有摘要值匹配不成功,除了在代码索引中存储目标摘要值,以及目标摘要值对应的一个代码文件的文件内容外,还需要在文件索引中存储目标摘要值,以及目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息。
例如,若代码文件A和代码文件B的文件内容相同,这两个代码文件的摘要值都是目标摘要值a,代码索引不包括与目标摘要值a相同的摘要值,则在代码索引中存储目标摘要值a,以及代码文件A(或者代码文件B)的文件内容,并且,在文件索引中存储两条新数据,这两条新数据分别为:目标摘要值a,以及代码文件A的文件信息;目标摘要值a,以及代码文件B的文件信息。
若所述目标摘要值与所述代码索引的已有摘要值匹配成功,则不需要向代码索引中添加新数据,但是仍旧在文件索引中存储目标摘要值,以及目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息。
例如,若代码文件A和代码文件B的文件内容相同,这两个代码文件的摘要值都是目标摘要值a,代码索引包括与目标摘要值a相同的摘要值,则在文件索引中存储两条新数据,这两条新数据分别为:目标摘要值a,以及代码文件A的文件信息;目标摘要值a,以及代码文件B的文件信息。
也就是说,不论目标摘要值与代码索引的已有摘要值是否匹配成功,对于所述摘要值集合中的每一个目标摘要值,都会将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在所述文件索引中。本实施例中的步骤与将所述目标摘要值与数据库的代码索引进行匹配的步骤之间,并无先后顺序。
如图3所示,代码文件解析器对目标代码库中的代码文件进行解析,根据解析结果向文件索引添加新数据,例如,获得每个代码文件的文件内容、文件信息和摘要值,然后将文件信息和摘要值存储在文件索引中。另外,根据解析结果确定是否向代码索引中添加新数据。如图4所示,在向代码索引添加新数据时,判断摘要值集合中是否已存在解析获得的目标摘要值,若不存在,则在摘要值集合中添加该目标摘要值,然后进一步基于摘要值集合将代码文件的文件内容存储至数据库中。
本实施例中,对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在所述文件索引中,从而实现对代码文件的存储,避免代码文件的信息丢失。
在本申请一个实施例中,所述目标代码库包括默认分支和非默认分支;所述默认分支包括所述至少一个代码文件中的第一代码文件,所述非默认分支包括所述至少一个代码文件中的除所述第一代码文件之外的第二代码文件;
步骤102、根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,包括:
对于所述第一代码文件中每一个第一目标代码文件,根据所述第一目标代码文件的文件内容,获得所述第一目标代码文件的摘要值;
若所述摘要值集合不包括所述第一目标代码文件的摘要值,则将所述第一目标代码文件的摘要值添加至所述摘要值集合中;
获取所述第二代码文件中的第二目标代码文件,所述第二目标代码文件的文件内容与所述第一代码文件中各第一目标代码文件的文件内容均不相同;
对于所述第二代码文件中每一个第二目标代码文件,根据所述第二目标代码文件的文件内容,获得所述第二目标代码文件的摘要值;
将所述第二目标代码文件的摘要值添加至所述摘要值集合中。
具体的,目标代码库至少包括一个分支,若目标代码库包括一个分支,则该分支为默认分支;若目标代码库包括多个分支,则多个分支中的一个分支为默认分支,剩余的其他分支为非默认分支。默认分支包括所述至少一个代码文件中的第一代码文件,所述非默认分支包括所述至少一个代码文件中的除所述第一代码文件之外的第二代码文件。
在本实施例中,先对默认分支中的代码文件进行处理,具体为:对于所述第一代码文件中的一个第一目标代码文件,根据所述第一目标代码文件的文件内容,获得所述第一目标代码文件的摘要值;若所述摘要值集合不包括所述第一目标代码文件的摘要值,则将所述第一目标代码文件的摘要值添加至所述摘要值集合中。对于所述第一代码文件中的每一个第一目标代码文件都进行上述处理,例如,遍历第一代码文件中的每一个第一目标代码文件,对第一目标代码文件进行解析,获取每个目标代码文件的文件内容、文件信息及摘要值,具体可通过git hash-object命令获取。目标代码库对应一个摘要值集合,即的git_blob集合。
然后再对非默认分支中的代码文件进行处理,具体为:获取所述第二代码文件中的第二目标代码文件,对于所述第二代码文件中一个第二目标代码文件,根据所述第二目标代码文件的文件内容,获得所述第二目标代码文件的摘要值;将所述第二目标代码文件的摘要值添加至所述摘要值集合中。对于所述第二代码文件中的每一个第二目标代码文件都进行上述处理。若非默认分支有多个,则对非默认分支中的多个分支依次进行上述处理。
第二目标代码文件的文件内容与所述第一代码文件中各第一目标代码文件的文件内容均不相同,即将默认分支的第一代码文件作为比对基准,将非默认分支的第二代码文件的各代码文件的文件内容与第一代码文件的各代码文件的文件内容分别进行比对,确定非默认分支中文件内容与第一代码文件包括的文件内容不同的代码文件,这些代码文件即为第二目标代码文件。例如,可使用git命令,获取非默认分支中与默认分支文件内容不同的代码文件(即第二目标代码文件),然后对这些代码文件的文件内容进行存储,即获取这些代码文件的摘要值,并将其添加至摘要值集合中。通过git命令可直接获取到非默认分支中与默认分支文件内容不同的代码文件,无需工程师再写代码对非默认分支中的代码文件进行遍历比对。
本实施例中,先对默认分支的第一代码文件的各第一目标代码文件进行解析,以确定所述第一目标代码文件的摘要值包括在所述摘要值集合中,然后以默认分支的第一代码文件为基准,将非默认分支的第二代码文件与第一代码文件进行比对,获得第二目标代码文件,将所述第二目标代码文件的摘要值添加至所述摘要值集合中。这样可使得相同文件内容的代码文件,对应摘要值集合中的一个摘要值,后续根据摘要值集合中的摘要值对代码文件进行存储时,可避免相同文件内容的重复存储,减少存储空间的浪费。
在本申请一个实施例中,所述获取所述第二代码文件中的第二目标代码文件,包括:
对于所述第二代码文件中的每一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;
若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。
上述确定第二目标代码文件的过程中,对于第二代码文件中的一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。对于第二代码文件中的每一个待确定代码文件都执行上述步骤,获得多个第二目标代码文件。
本实施例中,对于所述第二代码文件中的每一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。这样可以使得相同文件内容的代码文件,对应摘要值集合中的一个摘要值,后续根据摘要值集合中的摘要值对代码文件进行存储时,可避免相同文件内容的重复存储,减少存储空间的浪费。
在本申请一个实施例中,所述目标代码库包括默认分支和非默认分支;所述默认分支包括所述至少一个代码文件中的第一代码文件,所述非默认分支包括所述至少一个代码文件中的除所述第一代码文件之外的第二代码文件;
步骤102、根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,包括:
对于所述第一代码文件中每一个第一目标代码文件,根据所述第一目标代码文件的文件内容,获得所述第一目标代码文件的摘要值;
若所述摘要值集合不包括所述第一目标代码文件的摘要值,则将所述第一目标代码文件的摘要值添加至所述摘要值集合中;
对于所述第二代码文件中每一个第三目标代码文件,根据所述第三目标代码文件的文件内容,获得所述第三目标代码文件的摘要值;
若所述摘要值集合不包括所述第三目标代码文件的摘要值,则将所述第三目标代码文件的摘要值添加至所述摘要值集合中。
在本实施例中,先对第一代码文件中的各第一目标代码文件进行处理,向摘要值集合添加摘要值集合未包括的第一目标代码文件的摘要值;然后对第二代码文件进行处理,向摘要值集合添加摘要值集合未包括的第三目标代码文件的摘要值。这样可以使得相同文件内容的代码文件,对应摘要值集合中的一个摘要值,后续根据摘要值集合中的摘要值对代码文件进行存储时,可避免相同文件内容的重复存储,减少存储空间的浪费。
进一步的,若获取到多个代码库,则依次将所述多个代码库中的各代码库确定为目标代码库,然后对目标代码库使用上述实施例提供的方法进行处理,每个目标代码库对应一个摘要值集合。
参见图5,图5是本申请实施例提供的代码文件存储装置的结构图,如图5所示,本实施例提供一种代码文件存储装置500,包括:
第一获取模块501,用于获取目标代码库,所述目标代码库包括至少一个代码文件;
第二获取模块502,用于根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;
存储模块503,用于根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。
在本申请一个实施例中,所述存储模块503,包括:
匹配子模块,用于对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值与数据库的代码索引进行匹配,所述代码索引包括已有摘要值,以及与所述已有摘要值对应的已有代码文件;
第一存储子模块,用于若所述目标摘要值与所述代码索引的已有摘要值匹配不成功,则将所述目标摘要值,以及所述目标摘要值对应的一个代码文件的文件内容存储在所述代码索引中。
在本申请一个实施例中,所述存储模块503,包括:
第二存储子模块,用于对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在所述数据库的文件索引中。
在本申请一个实施例中,所述目标代码库包括默认分支和非默认分支;所述默认分支包括所述至少一个代码文件中的第一代码文件,所述非默认分支包括所述至少一个代码文件中的除所述第一代码文件之外的第二代码文件;
所述第二获取模块502,包括:
第一获取子模块,用于对于所述第一代码文件中每一个第一目标代码文件,根据所述第一目标代码文件的文件内容,获得所述第一目标代码文件的摘要值;
第一添加子模块,用于若所述摘要值集合不包括所述第一目标代码文件的摘要值,则将所述第一目标代码文件的摘要值添加至所述摘要值集合中;
第二获取子模块,用于获取所述第二代码文件中的第二目标代码文件,所述第二目标代码文件的文件内容与所述第一代码文件中各第一目标代码文件的文件内容均不相同;
第三获取子模块,用于对于所述第二代码文件中每一个第二目标代码文件,根据所述第二目标代码文件的文件内容,获得所述第二目标代码文件的摘要值;
第二添加子模块,用于将所述第二目标代码文件的摘要值添加至所述摘要值集合中。
在本申请一个实施例中,所述第二获取子模块,用于:
对于所述第二代码文件中的每一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;
若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。
代码文件存储装置500能够实现图1所示的方法实施例中电子设备实现的各个过程,为避免重复,这里不再赘述。
本申请实施例的代码文件存储装置500,获取目标代码库,所述目标代码库包括至少一个代码文件;根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。这样,若目标代码库中有多个代码文件的文件内容相同,也只会存储一份文件内容,避免了相同文件内容的重复存储,减少了存储资源的浪费,降低了存储成本。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的代码文件存储方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的代码文件存储方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的代码文件存储方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的代码文件存储方法对应的程序指令/模块(例如,附图5所示的第一获取模块501、第二获取模块502和存储模块503)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的代码文件存储方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据实现代码文件存储方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至实现代码文件存储方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现代码文件存储方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与实现代码文件存储方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过获取目标代码库,所述目标代码库包括至少一个代码文件;根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容。这样,若目标代码库中有多个代码文件的文件内容相同,也只会存储一份文件内容,避免了相同文件内容的重复存储,减少了存储资源的浪费,降低了存储成本。
另外,在目标摘要值与所述代码索引的已有摘要值匹配不成功时,将所述目标摘要值,以及所述目标摘要值对应的一个代码文件的文件内容存储在所述代码索引中,以避免相同文件内容的重复存储,减少存储空间的浪费。由于相同文件内容的多个代码文件,代码索引中只存储了一份文件内容,也减少了代码索引中的数据存储量,这样,在代码索引中搜索代码文件时,可减少代码文件搜索的搜索范围,提高代码文件搜索的效率。
对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在所述文件索引中,从而实现对代码文件的存储,避免代码文件的信息丢失。
先对默认分支的第一代码文件的各第一目标代码文件进行解析,以确定所述第一目标代码文件的摘要值包括在所述摘要值集合中,然后以默认分支的第一代码文件为基准,将非默认分支的第二代码文件与第一代码文件进行比对,获得第二目标代码文件,将所述第二目标代码文件的摘要值添加至所述摘要值集合中。这样可使得相同文件内容的代码文件,对应摘要值集合中的一个摘要值,后续根据摘要值集合中的摘要值对代码文件进行存储时,可避免相同文件内容的重复存储,减少存储空间的浪费。
对于所述第二代码文件中的每一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。这样可以使得相同文件内容的代码文件,对应摘要值集合中的一个摘要值,后续根据摘要值集合中的摘要值对代码文件进行存储时,可避免相同文件内容的重复存储,减少存储空间的浪费。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种代码文件存储方法,其特征在于,包括:
获取目标代码库,所述目标代码库包括至少一个代码文件;
根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;
根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容;
所述目标代码库包括默认分支和非默认分支;所述默认分支包括所述至少一个代码文件中的第一代码文件,所述非默认分支包括所述至少一个代码文件中的除所述第一代码文件之外的第二代码文件;
所述根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,包括:
对于所述第一代码文件中每一个第一目标代码文件,根据所述第一目标代码文件的文件内容,获得所述第一目标代码文件的摘要值;
若所述摘要值集合不包括所述第一目标代码文件的摘要值,则将所述第一目标代码文件的摘要值添加至所述摘要值集合中;
获取所述第二代码文件中的第二目标代码文件,所述第二目标代码文件的文件内容与所述第一代码文件中各第一目标代码文件的文件内容均不相同;
对于所述第二代码文件中每一个第二目标代码文件,根据所述第二目标代码文件的文件内容,获得所述第二目标代码文件的摘要值;
将所述第二目标代码文件的摘要值添加至所述摘要值集合中。
2.根据权利要求1所述的代码文件存储方法,其特征在于,所述根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,包括:
对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值与数据库的代码索引进行匹配,所述代码索引包括已有摘要值,以及与所述已有摘要值对应的已有代码文件;
若所述目标摘要值与所述代码索引的已有摘要值匹配不成功,则将所述目标摘要值,以及所述目标摘要值对应的一个代码文件的文件内容存储在所述代码索引中。
3.根据权利要求1所述的代码文件存储方法,其特征在于,所述根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,包括:
对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在数据库的文件索引中。
4.根据权利要求1所述的代码文件存储方法,其特征在于,所述获取所述第二代码文件中的第二目标代码文件,包括:
对于所述第二代码文件中的每一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;
若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。
5.一种代码文件存储装置,其特征在于,包括:
第一获取模块,用于获取目标代码库,所述目标代码库包括至少一个代码文件;
第二获取模块,用于根据所述目标代码库的所述至少一个代码文件,获得摘要值集合,其中,所述摘要值集合包括至少一个目标摘要值,文件内容相同的多个代码文件对应一个目标摘要值;
存储模块,用于根据所述摘要值集合,对所述目标代码库的所述至少一个代码文件进行存储,其中,针对每个目标摘要值只存储一个代码文件的文件内容;
所述目标代码库包括默认分支和非默认分支;所述默认分支包括所述至少一个代码文件中的第一代码文件,所述非默认分支包括所述至少一个代码文件中的除所述第一代码文件之外的第二代码文件;
所述第二获取模块,包括:
第一获取子模块,用于对于所述第一代码文件中每一个第一目标代码文件,根据所述第一目标代码文件的文件内容,获得所述第一目标代码文件的摘要值;
第一添加子模块,用于若所述摘要值集合不包括所述第一目标代码文件的摘要值,则将所述第一目标代码文件的摘要值添加至所述摘要值集合中;
第二获取子模块,用于获取所述第二代码文件中的第二目标代码文件,所述第二目标代码文件的文件内容与所述第一代码文件中各第一目标代码文件的文件内容均不相同;
第三获取子模块,用于对于所述第二代码文件中每一个第二目标代码文件,根据所述第二目标代码文件的文件内容,获得所述第二目标代码文件的摘要值;
第二添加子模块,用于将所述第二目标代码文件的摘要值添加至所述摘要值集合中。
6.根据权利要求5所述的代码文件存储装置,其特征在于,所述存储模块,包括:
匹配子模块,用于对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值与数据库的代码索引进行匹配,所述代码索引包括已有摘要值,以及与所述已有摘要值对应的已有代码文件;
第一存储子模块,用于若所述目标摘要值与所述代码索引的已有摘要值匹配不成功,则将所述目标摘要值,以及所述目标摘要值对应的一个代码文件的文件内容存储在所述代码索引中。
7.根据权利要求5所述的代码文件存储装置,其特征在于,所述存储模块,包括:
第二存储子模块,用于对于所述摘要值集合中的每一个目标摘要值,将所述目标摘要值,以及所述目标摘要值对应的所述目标代码库中的一个或多个代码文件的文件信息存储在数据库的文件索引中。
8.根据权利要求5所述的代码文件存储装置,其特征在于,所述第二获取子模块,用于:
对于所述第二代码文件中的每一个待确定代码文件,根据所述待确定代码文件的文件内容确定所述待确定代码文件的摘要值;
若所述待确定代码文件的摘要值与所述第一代码文件中各第一目标代码文件的摘要值均不相同,则将所述待确定代码文件确定为所述第二目标代码文件。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305891.7A CN111506268B (zh) | 2020-04-17 | 2020-04-17 | 代码文件存储方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305891.7A CN111506268B (zh) | 2020-04-17 | 2020-04-17 | 代码文件存储方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506268A CN111506268A (zh) | 2020-08-07 |
CN111506268B true CN111506268B (zh) | 2023-07-18 |
Family
ID=71872821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010305891.7A Active CN111506268B (zh) | 2020-04-17 | 2020-04-17 | 代码文件存储方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506268B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156376A (zh) * | 2013-05-15 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 一种文件的存储方法、装置及服务器 |
CN106557571A (zh) * | 2016-11-23 | 2017-04-05 | 福建亿榕信息技术有限公司 | 一种基于k‑v存储引擎的数据去重方法及装置 |
CN106708927A (zh) * | 2016-11-18 | 2017-05-24 | 北京二六三企业通信有限公司 | 文件的去重处理方法和装置 |
CN106843773A (zh) * | 2017-02-16 | 2017-06-13 | 天津书生云科技有限公司 | 存储方法和分布式存储*** |
CN107193498A (zh) * | 2017-05-25 | 2017-09-22 | 山东浪潮商用***有限公司 | 一种对数据进行去重复处理的方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814056B2 (en) * | 2004-05-21 | 2010-10-12 | Computer Associates Think, Inc. | Method and apparatus for data backup using data blocks |
US7725437B2 (en) * | 2007-07-31 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Providing an index for a data store |
CN102024002A (zh) * | 2009-09-10 | 2011-04-20 | 上海中信信息发展股份有限公司 | 一种电子文件归档的安全存储方法及*** |
US10140308B2 (en) * | 2012-03-06 | 2018-11-27 | International Business Machines Corporation | Enhancing data retrieval performance in deduplication systems |
CN102880671A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种面向分布式文件***的主动重复数据删除方法 |
US9697223B2 (en) * | 2013-07-08 | 2017-07-04 | International Business Machines Corporation | Providing identifiers to data files in a data deduplication system |
US9892048B2 (en) * | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Tuning global digests caching in a data deduplication system |
US9892127B2 (en) * | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Global digests caching in a data deduplication system |
US9619167B2 (en) * | 2013-11-27 | 2017-04-11 | Intel Corporation | System and method for computing message digests |
US10235080B2 (en) * | 2017-06-06 | 2019-03-19 | Saudi Arabian Oil Company | Systems and methods for assessing upstream oil and gas electronic data duplication |
US10387066B1 (en) * | 2018-04-18 | 2019-08-20 | EMC IP Holding Company LLC | Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data |
CN110175155B (zh) * | 2019-06-03 | 2023-06-13 | 武汉纺织大学 | 一种文件去重处理的方法和*** |
-
2020
- 2020-04-17 CN CN202010305891.7A patent/CN111506268B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156376A (zh) * | 2013-05-15 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 一种文件的存储方法、装置及服务器 |
CN106708927A (zh) * | 2016-11-18 | 2017-05-24 | 北京二六三企业通信有限公司 | 文件的去重处理方法和装置 |
CN106557571A (zh) * | 2016-11-23 | 2017-04-05 | 福建亿榕信息技术有限公司 | 一种基于k‑v存储引擎的数据去重方法及装置 |
CN106843773A (zh) * | 2017-02-16 | 2017-06-13 | 天津书生云科技有限公司 | 存储方法和分布式存储*** |
CN107193498A (zh) * | 2017-05-25 | 2017-09-22 | 山东浪潮商用***有限公司 | 一种对数据进行去重复处理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111506268A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8788471B2 (en) | Matching transactions in multi-level records | |
CN111666206B (zh) | 变更代码的影响范围的获取方法、装置、设备及存储介质 | |
EP3832493B1 (en) | Method, apparatus, electronic device and readable storage medium for data query | |
CN111523001B (zh) | 用于存储数据的方法、装置、设备以及存储介质 | |
US20210133217A1 (en) | Method and apparatus for importing data into graph database, electronic device and medium | |
CN110597797A (zh) | 表空间碎片回收方法、装置、电子设备及存储介质 | |
CN111931524B (zh) | 用于输出信息的方法、装置、设备以及存储介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN111767442B (zh) | 数据更新方法、装置、搜索服务器、终端及存储介质 | |
CN111259058B (zh) | 数据挖掘方法、数据挖掘装置和电子设备 | |
CN111274127B (zh) | 代码评审中的代码跳转方法、装置、设备和介质 | |
CN110688837B (zh) | 数据处理的方法及装置 | |
CN111506268B (zh) | 代码文件存储方法、装置和电子设备 | |
CN111966846A (zh) | 图像查询方法、装置、电子设备和存储介质 | |
CN112446728B (zh) | 广告召回方法、装置、设备及存储介质 | |
CN113010811B (zh) | 网页获取方法、装置、电子设备及计算机可读存储介质 | |
CN111539225B (zh) | 语义理解框架结构的搜索方法和装置 | |
CN111026438B (zh) | 小程序包和页面关键信息的提取方法、装置、设备及介质 | |
CN111639116B (zh) | 数据访问连接会话保护方法以及装置 | |
CN111459887B (zh) | 资源筛查方法、装置、电子设备和存储介质 | |
CN111292223A (zh) | 图计算的处理方法、装置、电子设备及存储介质 | |
CN111506786B (zh) | 网页更新的方法、装置、电子设备和计算机可读存储介质 | |
CN111597301B (zh) | 文本预测方法、装置以及电子设备 | |
US20210288938A1 (en) | Network Data Processing Method, Apparatus, Electronic Device, and Storage Medium | |
CN115563183B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |