CN104239316A - 查找对象的方法及装置 - Google Patents
查找对象的方法及装置 Download PDFInfo
- Publication number
- CN104239316A CN104239316A CN201310232729.7A CN201310232729A CN104239316A CN 104239316 A CN104239316 A CN 104239316A CN 201310232729 A CN201310232729 A CN 201310232729A CN 104239316 A CN104239316 A CN 104239316A
- Authority
- CN
- China
- Prior art keywords
- catalogue
- record
- title
- extension
- found
- 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.)
- Granted
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种查找对象的方法及装置,属于计算机领域。所述方法包括:获取待查找对象的名称;获取预先设置的待查找对象所在的第一级目录的主记录;在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取待查找对象对应的扩展记录;根据待查找对象对应的扩展记录获取待查找对象。本发明通过获取待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录中查找并获取待查找对象,由于扩展记录中包括第一级目录的一部分对象的名称,减少了查找对象所花费的时间,提高了查找对象的效率。
Description
技术领域
本发明涉及计算机领域,特别涉及一种查找对象的方法及装置。
背景技术
在计算机***中,通常存储有大量的目录,且每个目录中还可以包含子目录以及文件。在使用过程中,通常从计算机***存储的大量目录中查找所需要的对象,查找的对象可以是目录或文件。因此,如何快速地查找对象成为了技术人员关注的问题。
现有技术在查找对象时,获取待查找对象的名称,待查找对象为目录或文件;获取预先设置的待查找对象所在的第一级目录的查找列表,该查找列表中包括该第一级目录包含的所有对象的名称和地址标识,对象包括目录和文件;在该查找列表中遍历查找与待查找对象的名称相同的对象,并根据查找到的名称相同的对象获取待查找对象。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在现有技术中,预先设置的第一级目录的查找项列表中包括第一级目录下的所有对象,因此在查找待查找对象时,需要在该查找项列表中遍历查找与待查找对象的名称相同的对象,当第一级目录包含对象较多时,遍历查找所花费的时间较多,导致查找效率不高。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种查找对象的方法及装置。所述技术方案如下:
一方面,提供了一种查找对象的方法,所述方法包括:
获取待查找对象的名称,所述待查找对象为目录或文件;
获取预先设置的所述待查找对象所在的第一级目录的主记录,所述第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
根据所述待查找对象的名称确定所述待查找对象对应的前缀范围;
在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取所述待查找对象对应的扩展记录;
根据所述待查找对象对应的扩展记录获取所述待查找对象;
其中,每个扩展记录包括所述待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,所述对象为目录或文件。
进一步地,所述方法还包括:
获取所述待查找对象所在每级目录的名称;
所述获取预先设置的所述待查找对象所在的第一级目录的主记录,包括:
根据所述待查找对象所在每级目录的名称获取预先设置的所述待查找对象所在的第一级目录的主记录。
优选地,所述根据所述待查找对象所在每级目录的名称获取预先设置的所述待查找对象所在的第一级目录的主记录,包括:
根据所述待查找对象所在顶级目录的名称获取预先设置的所述顶级目录的主记录;
根据所述顶级目录的下一级目录的名称确定所述顶级目录的下一级目录对应的前缀范围;
在所述顶级目录的主记录中确定包括所述顶级目录的下一级目录对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取所述顶级目录的下一级目录对应的扩展记录;
根据所述顶级目录的下一级目录对应的扩展记录获取所述顶级目录的下一级目录的主记录;
按照获取所述顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的所述待查找对象所在的第一级目录的主记录。
优选地,所述顶级目录的下一级目录对应的扩展记录中还包括所述顶级目录的下一级目录的主记录的键值,所述根据所述顶级目录的下一级目录对应的扩展记录获取所述顶级目录的下一级目录的主记录,包括:
在所述顶级目录的下一级目录对应的扩展记录中查找与所述顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取所述顶目录的下一级目录的主记录。
具体地,所述根据所述待查找对象对应的扩展记录获取所述待查找对象,包括:
在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象。
进一步地,所述方法还包括:
将所述第一级目录的主记录所包括的多个扩展记录的索引按照所述多个扩展记录的前缀范围进行排序;
所述在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,包括:
按照二分法在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引。
进一步地,所述方法还包括:
根据所述第一级目录包含的对象设置多个扩展记录,并确定每个扩展记录的标识和前缀范围;
根据每个扩展记录的标识和前缀范围生成每个扩展记录的索引,并设置所述第一级目录的主记录,所述第一级目录的主记录包括生成的多个扩展记录的索引。
优选地,所述方法还包括:
确定所述第一级目录包含的对象的个数;
如果所述第一级目录包含的对象的个数达到第一阈值,则执行根据所述第一级目录包含的对象设置多个扩展记录的步骤。
具体地,所述根据所述第一级目录包含的对象设置多个扩展记录,包括:
将所述第一级目录包含的对象划分为多个组,每组至少包括一个对象;
根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
具体地,所述确定每个扩展记录的标识和前缀范围,包括:
为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
优选地,如果所述第一级目录包含的对象中有至少一个对象为目录,所述方法还包括:
设置所述至少一个对象的主记录的键值;
相应地,所述方法还包括:
在包括所述至少一个对象的名称的扩展记录中设置所述至少一个对象的主记录的键值。
具体地,所述设置所述至少一个对象的主记录的键值,包括:
生成所述至少一个对象的UUID(Universally Unique Identifier,通用唯一识别码),并根据所述至少一个对象的UUID设置所述至少一个对象的主记录的键值。
优选地,所述根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,包括:
将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
所述在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象的名称相同的名称,包括:
按照二分法在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象名称相同的名称。
优选地,所述将所述第一级目录包含的对象划分为多组,包括:
将所述第一级目录包括的目录划分为至少一个组,并将所述第一级目录包括的文件划分为至少一个组;
所述方法还包括:将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
所述在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,包括:
如果所述待查找对象为目录,则在所述第一级目录的主记录包括的目录扩展记录的索引中确定包括所述待查找对象对应的前缀范围的目录扩展记录;
如果所述待查找对象为文件,则在所述第一级目录的主记录包括的文件扩展记录的索引中确定包括所述待查找对象对应的前缀范围的文件扩展记录。
进一步地,所述方法还包括:
如果所述第一级目录中新增至少一个对象,则根据新增的对象的名称确定所述新增的对象对应的扩展记录,并将所述新增的对象的名称和地址标识添加到所述新增的对象对应的扩展记录;或者,
如果所述第一级目录中至少一个对象被删除,则根据被删除的对象的名称确定所述被删除的对象对应的扩展记录,并将所述被删除的对象的名称和地址标识从所述被删除的对象对应的扩展记录中删除。
进一步地,所述方法还包括:
在所述新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果所述新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行将所述新增的对象的名称和地址标识添加到所述新增的对象对应的扩展记录的步骤。
优选地,所述方法还包括:
如果所述新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值,则将所述新增的对象对应的扩展记录拆分为预设个数的扩展记录,并确定每个拆分后的扩展记录的标识和前缀范围;
根据每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引,并将每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中;
在所述第一级目录的主记录中删除所述新增的对象对应的拆分前的扩展记录的索引。
优选地,所述方法还包括:
在将每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述新增的对象对应的拆分前的扩展记录进行删除。
优选地,所述方法还包括:
如果所述被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值,则将所述被删除的对象对应的扩展记录与其他扩展记录进行合并,并确定合并后的扩展记录的标识和前缀范围;
根据合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引,并将合并后的扩展记录的索引添加到所述第一级目录的主记录中;
在所述第一级目录的主记录中删除所述被删除的对象对应的合并前的扩展记录的索引。
优选地,所述方法还包括:
在将合并后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述被删除的对象对应的合并前的扩展记录进行删除。
优选地,所述方法还包括:
按照扩展记录的前缀范围将每个扩展记录进行排序;
所述将所述被删除的对象对应的扩展记录与其他扩展记录进行合并,包括:
在与所述被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与所述被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;
将所述被删除的对象对应的扩展记录与确定的扩展记录进行合并。
优选地,所述方法还包括:
确定所述第一级目录包含的目录的个数及所述第一级目录包含的文件的个数;
根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录。
优选地,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数之和小于所述第一阈值,则根据所述第一级目录包含的目录所对应的扩展记录和所述第一级目录包含的文件所对应的扩展记录设置查找列表,所述查找列表包括所述第一级目录包含的目录的名称和地址标识,以及所述第一级目录包含的文件的名称和地址标识;
删除所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引,并根据所述查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述查找列表。
优选地,所述查找列表还包括所述第一级目录包含的目录的主记录的键值。
优选地,所述方法还包括:
获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
在所述第一级目录的主记录包括的查找列表所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象。
优选地,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数大于等于第三阈值,则根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引,并根据所述目录查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述目录查找列表。
优选地,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数大于等于第二阈值且所述第一级目录包含的文件的个数小于第三阈值,则根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除所述第一级目录的主记录所包括的所述第一级目录包含的文件所对应的扩展记录的索引,并根据所述文件查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述文件查找列表。
优选地,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数小于第三阈值,则根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引,并根据所述目录查找列表和所述文件查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述目录查找列表和所述文件查找列表。
优选地,所述目录查找列表还包括所述第一级目录包含的目录的主记录的键值。
优选地,所述方法还包括:
获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
如果所述待查找对象为目录,则根据所述待查找对象的名称在所述第一级目录的主记录包括的目录查找列表所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象;
如果所述待查找对象为文件,则根据所述待查找对象的名称在所述第一级目录的主记录包括的文件查找列表所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象。
另一方面,提供了一种查找对象的装置,所述装置包括:
第一获取模块,用于获取待查找对象的名称,所述待查找对象为目录或文件;
第二获取模块,用于获取预先设置的所述待查找对象所在的第一级目录的主记录,所述第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
第一确定模块,用于根据所述第一获取模块获取到的待查找对象的名称确定所述待查找对象对应的前缀范围;
第二确定模块,用于在所述第一确定模块确定的第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引;
第三获取模块,用于根据所述第二确定模块确定的扩展记录的索引所包括的扩展记录的标识获取所述待查找对象对应的扩展记录;
第四获取模块,用于根据所述第三获取模块获取到的待查找对象对应的扩展记录获取所述待查找对象;
其中,每个扩展记录包括所述待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,所述对象为目录或文件。
进一步地,所述装置还包括:
第五获取模块,用于获取所述待查找对象所在每级目录的名称;
所述第二获取模块,用于根据所述第五获取模块获取到的待查找对象所在每级目录的名称获取预先设置的所述待查找对象所在的第一级目录的主记录。
优选地,所述第二获取模块,包括:
第一获取单元,用于根据所述待查找对象所在顶级目录的名称获取预先设置的所述顶级目录的主记录;
第一确定单元,用于根据所述顶级目录的下一级目录的名称确定所述顶级目录的下一级目录对应的前缀范围;
第二确定单元,用于在所述第一获取单元获取到的顶级目录的主记录中确定包括所述第一确定单元确定的顶级目录的下一级目录对应的前缀范围的扩展记录的索引;
第二获取单元,用于根据所述第二确定单元确定的扩展记录的索引所包括的扩展记录的标识获取所述顶级目录的下一级目录对应的扩展记录;
第三获取单元,用于根据所述第二获取单元获取到的顶级目录的下一级目录对应的扩展记录获取所述顶级目录的下一级目录的主记录;
处理单元,用于按照获取所述顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的所述待查找对象所在的第一级目录的主记录。
优选地,所述顶级目录的下一级目录对应的扩展记录中还包括所述顶级目录的下一级目录的主记录的键值,所述第三获取单元,用于在所述顶级目录的下一级目录对应的扩展记录中查找与所述顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取所述顶目录的下一级目录的主记录。
具体地,所述第四获取模块,包括:
查找单元,用于在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象的名称相同的名称;
获取单元,用于根据所述查找单元查找到的名称所对应的地址标识获取所述待查找对象。
进一步地,所述装置还包括:
第一排序模块,用于将所述第一级目录的主记录所包括的多个扩展记录的索引按照所述多个扩展记录的前缀范围进行排序;
所述第二确定模块,用于按照二分法在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引。
进一步地,所述装置还包括:
第一设置模块,用于根据所述第一级目录包含的对象设置多个扩展记录;
第三确定模块,用于确定所述第一设置模块设置的每个扩展记录的标识和前缀范围;
第一生成模块,用于根据所述第三确定模块确定的每个扩展记录的标识和前缀范围生成每个扩展记录的索引;
第二设置模块,用于设置所述第一级目录的主记录,所述第一级目录的主记录包括所述第一生成模块生成的多个扩展记录的索引。
优选地,所述装置还包括:
第四确定模块,用于确定所述第一级目录包含的对象的个数;
如果所述第四确定模块确定的第一级目录包含的对象的个数达到第一阈值,则执行所述第一设置模块。
具体地,所述第一设置模块,包括:
划分单元,用于将所述第一级目录包含的对象划分为多个组,每组至少包括一个对象;
设置单元,用于根据所述划分单元划分的每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
具体地,所述第三确定模块,用于为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
优选地,如果所述第一级目录包含的对象中有至少一个对象为目录,所述装置还包括:
第三设置模块,用于设置所述至少一个对象的主记录的键值;
第四设置模块,用于在包括所述至少一个对象的名称的扩展记录中设置所述第三设置模块设置的至少一个对象的主记录的键值。
具体地,所述第三设置模块,用于生成所述至少一个对象的UUID,并根据所述至少一个对象的UUID设置所述至少一个对象的主记录的键值。
优选地,所述第一设置模块的设置单元,用于将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
所述第四获取模块的查找单元,用于按照二分法在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象名称相同的名称。
优选地,所述第一设置模块的划分单元,用于将所述第一级目录包括的目录划分为至少一个组,并将所述第一级目录包括的文件划分为至少一个组;
所述第一设置模块的设置单元根据每组包括的对象的名称和地址标识设置每组对应的扩展记录之后,将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
所述第二确定模块,用于在所述待查找对象为目录时,在所述第一级目录的主记录包括的目录扩展记录的索引中确定包括所述待查找对象对应的前缀范围的目录扩展记录;在所述待查找对象为文件时,在所述第一级目录的主记录包括的文件扩展记录的索引中确定包括所述待查找对象对应的前缀范围的文件扩展记录。
进一步地,所述装置还包括:
新增模块,用于在所述第一级目录中新增至少一个对象时,根据新增的对象的名称确定所述新增的对象对应的扩展记录,并将所述新增的对象的名称和地址标识添加到所述新增的对象对应的扩展记录;
第一删除模块,用于在所述第一级目录中至少一个对象被删除时,根据被删除的对象的名称确定所述被删除的对象对应的扩展记录,并将所述被删除的对象的名称和地址标识从所述被删除的对象对应的扩展记录中删除。
进一步地,所述装置还包括:
第五确定模块,用于在所述新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果所述第五确定模块确定的所述新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行所述新增模块。
优选地,所述装置还包括:
拆分模块,用于在所述新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值时,将所述新增的对象对应的扩展记录拆分为预设个数的扩展记录;
第六确定模块,用于确定所述拆分模块拆分后得到的每个拆分后的扩展记录的标识和前缀范围;
第二生成模块,用于根据所述第六确定模块确定的每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引;
第一添加模块,用于将所述第二生成模块生成的每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中;
第二删除模块,用于在所述第一级目录的主记录中删除所述新增的对象对应的拆分前的扩展记录的索引。
优选地,所述装置还包括:
第三删除模块,用于在所述第一添加模块将所述第二生成模块生成的每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述新增的对象对应的拆分前的扩展记录进行删除。
优选地,所述装置还包括:
合并模块,用于在所述被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值时,将所述被删除的对象对应的扩展记录与其他扩展记录进行合并;
第七确定模块,用于确定所述合并模块合并后的扩展记录的标识和前缀范围;
第三生成模块,用于根据所述合并模块合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引;
第二添加模块,用于将所述第三生成模块生成的合并后的扩展记录的索引添加到所述第一级目录的主记录中;
第四删除模块,用于在所述第一级目录的主记录中删除所述被删除的对象对应的合并前的扩展记录的索引。
优选地,所述装置还包括:
第五删除模块,用于在所述第二添加模块将所述第三生成模块生成的合并后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述被删除的对象对应的合并前的扩展记录进行删除。
优选地,所述装置还包括:
第二排序模块,用于按照扩展记录的前缀范围将每个扩展记录进行排序;
所述合并模块,用于在与所述被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与所述被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;将所述被删除的对象对应的扩展记录与确定的扩展记录进行合并。
优选地,所述装置还包括:
第八确定模块,用于确定所述第一级目录包含的目录的个数及所述第一级目录包含的文件的个数;
第五设置模块,用于根据所述第八确定模块确定的第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录。
优选地,所述第五设置模块,包括:
第一设置单元,用于在所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数之和小于所述第一阈值时,根据所述第一级目录包含的目录所对应的扩展记录和所述第一级目录包含的文件所对应的扩展记录设置查找列表,所述查找列表包括所述第一级目录包含的目录的名称和地址标识,以及所述第一级目录包含的文件的名称和地址标识;
第一删除单元,用于删除所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引;
第二设置单元,用于根据所述查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述查找列表。
优选地,所述第一设置单元设置的查找列表还包括所述第一级目录包含的目录的主记录的键值。
优选地,所述装置还包括:
第六获取模块,用于获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
第一查找模块,用于在所述第一级目录的主记录包括的查找列表所包括的名称中查找与所述待查找对象的名称相同的名称;
第七获取模块,用于根据查找到的名称所对应的地址标识获取所述待查找对象。
优选地,所述第五设置模块,包括:
第三设置单元,用于在所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数大于等于第三阈值时,根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
第二删除单元,用于删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引;
第四设置单元,用于根据所述第三设置模块设置的目录查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述目录查找列表。
优选地,所述第五设置模块,包括:
第五设置单元,用于在所述第一级目录包含的目录的个数大于等于第二阈值且所述第一级目录包含的文件的个数小于第三阈值时,根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
第三删除单元,用于删除所述第一级目录的主记录所包括的所述第一级目录包含的文件所对应的扩展记录的索引;
第六设置单元,用于根据所述第五设置单元文件查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述文件查找列表。
优选地,所述第五设置模块,包括:
第七设置单元,用于在所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数小于第三阈值时,根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
第四删除单元,用于删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引;
第八设置单元,用于根据所述第七设置单元设置的目录查找列表和文件查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述目录查找列表和所述文件查找列表。
优选地,所述第三设置单元或所述第七设置单元设置的目录查找列表还包括所述第一级目录包含的目录的主记录的键值。
优选地,所述装置,还包括:
第八获取模块,用于获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
第二查找模块,用于在所述待查找对象为目录时,根据所述待查找对象的名称在所述第一级目录的主记录包括的目录查找列表所包括的名称中查找与所述待查找对象的名称相同的名称;
第九获取模块,用于根据所述第二查找模块查找到的名称所对应的地址标识获取所述待查找对象;
第三查找模块,用于在所述待查找对象为文件时,根据所述待查找对象的名称在所述第一级目录的主记录包括的文件查找列表所包括的名称中查找与所述待查找对象的名称相同的名称;
第十获取模块,用于根据所述第三查找模块查找到的名称所对应的地址标识获取所述待查找对象。
本发明实施例提供的技术方案带来的有益效果是:
通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的查找对象的方法的实施环境示意图;
图2是本发明实施例提供的待查找对象所在每级目录的主记录以及相应的扩展记录的示意图;
图3是本发明实施例一提供的一种查找对象的方法流程图;
图4是本发明实施例二提供的一种查找对象的方法流程图;
图5是本发明实施例二提供的一种待查找对象所在每级目录的主记录以及相应的扩展记录的示意图;
图6是本发明实施例二提供的待查找对象所在的第一级目录的主记录的示意图;
图7是本发明实施例三提供的一种查找对象的装置结构示意图;
图8是本发明实施例四提供的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种查找对象的方法,请参考图1,其示出了本发明实施例提供的查找对象的方法所涉及的实施环境的结构示意图。该实施环境包括配置有用户终端101、查找对象的装置102和数据库103。
其中,查找对象的装置102如下面实施例三所述的查找对象的装置,每个用户终端101通过查找对象的装置102进行对象的查找。查找对象的装置102可以配置在用户终端101中,也可以独立于用户终端101而配置。实施环境中可以有一至多个查找对象的装置102,组成一个查找对象的装置的集群,当需要查找对象的用户终端101的个数较多,或者每个用户终端101执行查找对象的操作较密集时,多个查找对象的装置102可以并行执行查找对象的操作,从而提高查找对象的速度。
数据库103中存储有查找对象的装置102在查找对象过程中所需的数据,如每个目录的主记录和每个目录包含的对象对应的扩展记录等。图2示出了数据库103中存储的从顶级目录依次往后的每级目录的主记录及其相应的扩展记录,其中,每级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围。每个扩展记录包括对应级目录所包含的下一级目录的名称、地址标识和下一级目录的主记录的键值,以及文件的名称和地址标识。图2仅示出了其中的部分结构,根据实际***中的目录和文件的关系,可以采用与图2相似的结构存储相应的数据。
数据库103除了可以独立于查找对象的装置102和用户终端101配置之外,还可以配置在查找对象的装置102中,使得查找对象的装置102可以直接从自身配置的数据库103中获取所需的数据,或者数据库103还可以配置在用户终端101中,使得查找对象的装置102从用户终端101配置的数据库中获取所需的数据,本发明实施例在此不对数据库103的配置方式进行具体限定。
用户终端101与查找对象的装置102之间通过网络进行通信,查找对象的装置102与数据库103之间也通过网络进行通信,该网络可以为无线网络或有线网络。
实施例一
本发明实施例提供了一种查找对象的方法,参见图3,方法流程包括:
301:获取待查找对象的名称,待查找对象为目录或文件。
302:获取预先设置的待查找对象所在的第一级目录的主记录,第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围。
303:根据待查找对象的名称确定待查找对象对应的前缀范围。
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取待查找对象对应的扩展记录。
304:根据待查找对象对应的扩展记录获取待查找对象。
其中,每个扩展记录包括待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,对象为目录或文件。
综上所述,本发明实施例提供的方法,通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。
实施例二
为了提高查找对象的效率,本发明实施例提供了一种查找对象的方法,其中,对象为目录或文件。结合上述实施例一的内容,参见图4,本发明实施例提供的方法流程包括:
401:获取待查找对象的名称,并获取待查找对象所在每级目录的名称。
其中,待查找对象为目录或文件。在查找对象时,用户需要预先获知待查找对象的名称和待查找对象所在每级目录的名称,并将待查找对象的名称和待查找对象所在每级目录的名称输入用户终端,查找对象的装置可以通过用户终端获取待查找对象的名称和待查找对象所在每级目录的名称。其中,可以将待查找对象的上一级目录称为第一级目录,将第一级目录的上一级目录称为第二级目录,按照上述关系依次命名,直至顶级目录。
进一步地,由计算机***的存储结构可知,如果待查找对象为文件,则该待查找对象至少位于一个目录下,如果待查找对象为目录且该待查找对象非顶级目录,则该待查找对象也至少位于一个目录下。例如,如果待查找对象为文件,获取待查找对象的名称为“C1”,待查找对象所在的第一级目录为“B”,第一级目录的上一级目录,也即顶级目录的名称为“A”,可以将待查找对象所在每级目录的名称从顶级目录开始依次排序表示为“A_B”。
402:根据待查找对象所在每级目录的名称获取预先设置的待查找对象所在的第一级目录的主记录,第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围。
针对该步骤,为了提高查找对象的效率,在获取预先设置的待查找对象所在的第一级目录的主记录之前,还需要预先设置第一级目录的主记录,主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围。设置第一级目录的主记录的具体方式如下述步骤1a至1d所示:
步骤1a:根据第一级目录包含的对象设置多个扩展记录。
在步骤1a中,根据第一级目录包含的对象设置多个扩展记录,包括:将第一级目录包含的对象划分为多个组,每组至少包括一个对象;根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
其中,将第一级目录包含的对象划分为多个组时,为了保证后续便于确定每组对应的扩展记录的前缀范围,需要将第一级目录包含的对象按照名称的前缀的顺序进行划分,前缀可以为对象的名称的前一位或多位,前缀的顺序为字典的顺序。例如,预先将名称的前缀位于C0-C10的范围的目录和文件划分为一个组,将名称的前缀位于C11-C20的范围的目录和文件划分为另一个组。划分得到的多个组中每组包括的对象的数量可以相同或者不同,本发明实施例在此均不进行具体限定。
在划分得到多个组后,需要设置每组对应的扩展记录,扩展记录包括对应组所包括的对象的名称和地址标识。其中,每组包括的对象的名称和地址标识可以预先获知,每组包括的对象的地址标识用于指示该对象的存储位置,地址标识可以为指针或者URL(Uniform Resource Locator,统一标识定位符)。该对象可以存储在用户终端的本地,也可以存储在其他一个或多个存储设备,本发明实施例对对象的存储位置不进行具体限定,仅需要预先获取对象的地址标识即可。
举例来说,仍以待查找对象C1所在的第一级目录为目录B为例,目录B中包含目录和文件C0至C30,将目录B包含的目录和文件划分为3个组,第一组包括11个目录和文件,第二组和第三组包括10个目录和文件;根据第一组包括的目录的名称和地址标识,以及第一组包括的文件的名称和地址标识,得到第一组对应的扩展记录K1,扩展记录K1包括对象C0-C10的名称“C0-C10”和地址标识URL20-30。同样地,可以得到第二组和第三组对应的扩展记录K2和K3,参见图2,其中扩展记录K2和扩展记录K3在图2中被省略。
需要说明的是,在***中不仅第一级目录具有主记录,为了方便查找第一级目录包含的目录,第一级目录包含的目录也具有主记录,每个目录的主记录都具有一个键值,用于根据该键值查找到该目录的主记录,因此,在设置第一级目录的主记录时,如果第一级目录包含的对象中有至少一个对象为目录,还可以设置至少一个对象的主记录的键值。在根据每组包括的对象的名称和地址标识设置每组对应的扩展记录之后,还包括:在包括至少一个对象的名称的扩展记录中设置至少一个对象的主记录的键值。因此,包括目录的名称的扩展记录还包括该目录的主记录的键值。
具体地,设置至少一个对象的主记录的键值,包括:生成至少一个对象的UUID,并根据至少一个对象的UUID设置至少一个对象的主记录的键值。
其中,UUID能够唯一辨识***存储的每个对象,可以通过相应的应用程序生成。根据至少一个对象的UUID设置至少一个对象的主记录的键值时,至少一个主记录的键值除了包括UUID之外,还可以包括其他标识,例如至少一个对象的业务ID等,本发明实施例对此不进行具体限定。
当然,除了按照上述方式设置至少一个对象的主记录的键值之外,还可以采用其他方式设置至少一个对象的主记录的键值,仅需要保证通过设置的键值能够识别对象的主记录即可。
例如,在图2所示中,扩展记录K1包括目录C5的名称“C5”和地址标识URL21,还包括目录C5的主记录的键值200。
步骤1b:确定每个扩展记录的标识和前缀范围。
为了能够区分步骤1a设置的每个扩展记录,需要确定每个扩展记录的标识和前缀范围。具体地,为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
其中,可以任意分配每个扩展记录对应的标识,能够保证每个扩展记录的标识不重复即可。同时,可以将每个扩展记录的标识设置为每个扩展记录的键值,使得后续可以根据每个扩展记录的标识直接获取该扩展记录。此外,还可以根据每个扩展记录的标识按照预设规则设置每个扩展记录的键值,例如,将每个扩展记录的标识和包括该扩展记录的索引的第一级目录的主记录设置为该扩展记录的键值。
在根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围时,每个扩展记录的前缀范围能够涵盖每个扩展记录所包括的对象的名称,且保证每个扩展记录的前缀范围不产生重叠。例如,扩展记录K1所包括的对象的名称为“C0-C10”,扩展记录K2所包括的对象的名称为“C11-C20”,则扩展记录K1的前缀范围为C0-C10,扩展记录K2的前缀范围为C11-C20。
由于每个扩展记录的前缀范围不产生重叠,因此,可以将每个扩展记录所包括的对象的名称所处范围的右边界确定为每个扩展记录的前缀范围,例如,扩展记录K1所包括的对象的名称“C0-C10”所处范围的右边界为C10,扩展记录K2所包括的对象的名称为“C15-C20”所处范围的右边界为C20,则确定C10为扩展记录K1的前缀范围,并确定C20为扩展记录K2的前缀范围,即扩展记录K1所包括的对象的名称“C0-C10”的前缀均处于C0-C10的范围内,扩展记录K2所包括的对象的名称的“C15-C20”的前缀均处于C11-C20的范围内,其中,扩展记录K2所包括的对象的名称所处的C11-C20的范围是根据前一个扩展记录K1的右边界C10和扩展记录K2的右边界C20确定的。
步骤1c:根据每个扩展记录的标识和前缀范围生成每个扩展记录的索引。
生成的每个扩展记录的索引包括每个扩展记录的标识和前缀范围,除此之外,每个扩展记录的索引还可以包括其他内容,本发明实施例在此不进行具体限定。
步骤1d:设置第一级目录的主记录,第一级目录的主记录包括生成的多个扩展记录的索引。
第一级目录的主记录除了包括多个扩展记录的索引之外,第一级目录的主记录还可以包括其他内容,本发明实施例在此不进行具体限定。
需要说明的是,除了可以根据上述步骤1a至步骤1d设置待查找对象所在的第一级目录的主记录之外,还可以按照设置第一级目录的主记录的方式设置其他级目录的主记录,其他级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围,每个扩展记录包括其他级目录包含的至少一个对象的名称和地址标识。如果其他级目录包含的至少一个对象为目录,则包括该至少一个对象的名称的扩展记录还包括该至少一个对象的主记录的键值。
如果以上述步骤1a至步骤1d的方式设置待查找对象所在其他级目录的主记录的方式为设置方式一,除了上述设置方式一之外,还可以按照如下设置方式二设置待查找对象所在其他级目录的主记录:
根据其他级目录包含的所有对象的名称和地址标识设置查找列表,查找列表包括其他级目录所包含的对象的名称和地址标识,根据查找列表设置其他级目录的主记录,其他级目录的主记录包括设置的查找列表。且包含目录的名称的查找列表还包括该目录的主记录的键值。
当然,如果待查找对象所在的每级目录中,除了第一级目录之外还有多个其他级目录,每个其他级目录按照上述设置方式一或上述设置方式二设置每个其他级目录的主记录。具体地,可以按照上述设置方式一执行步骤1a之前,确定其他级目录包含的对象的个数,如果其他级目录包含的对象的个数达到第一阈值,则执行根据其他级目录包含的对象设置多个扩展记录的步骤。
由于当其他级目录包含的对象的个数较少时,采用上述设置方式二设置其他级目录的主记录时,相较于采用上述设置方式一设置其他级目录的主记录,在后续进行对象的查找时效率更高,而当其他级目录包含的对象的个数较多时,采用上述设置方式一设置其他级目录的主记录以及相应的扩展记录时,相较于采用上述设置方式二设置其他级目录的主记录,在后续进行对象的查找时效率更高。因此,可以综合权衡两种方式之间的平衡点以设置第一阈值,当其他级目录包含的对象的个数达到第一阈值,采用上述设置方式一设置其他级目录的主记录,当其他级目录包含的对象的个数未达到第一阈值时,则采用上述设置方式二设置其他级目录的主记录。同样的道理,在设置待查找对象所在的第一级目录的主记录时,也可以首先确定第一级目录包含的对象的个数,如果第一级目录包含的对象的个数达到第一阈值,再按照上述设置方式一设置待查找对象所在的第一级目录的主记录。如果第一级目录包含的对象的个数未达到第一阈值,则按照上述设置方式二设置待查找对象所在的第一级目录的主记录。
本发明实施例仅以待查找对象所在的第一级目录的主记录和每个其他级目录的主记录均按照上述设置方式一进行设置为例进行说明。在设置完毕每级目录的主记录以及相应的扩展记录之后,还可以将每级目录的主记录以及相应的扩展记录存储到数据库中,也可以将每级目录的主记录以及相应的扩展记录存储在查找对象的装置的本地或者用户终端的本地,本发明实施例在此不对每级目录的主记录以及相应的扩展记录的存储方式进行具体限定。
在设置完成第一级目录的主记录和其他级目录的主记录之后,可以根据待查找对象所在每级目录的名称获取预先设置的待查找对象所在的第一级目录的主记录,具体方式如下:
步骤402a:根据待查找对象所在顶级目录的名称获取预先设置的顶级目录的主记录,主记录中包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围。
针对该步骤,顶级目录为计算机***中的根目录,数量为一个或多个,待查找对象位于其中一个顶级目录中。由于顶级目录的数量通常较少,在预先设置完顶级目录的主记录之后,可以设置每个顶级目录的名称和每个顶级目录的主记录之间的对应关系。根据每个顶级目录的名称和每个顶级目录的主记录之间的对应关系查找与待查找对象所在顶级目录的名称相同的顶级目录的名称对应的主记录,并将查找到的主记录获取为待查找对象所在顶级目录的主记录。当然,如果顶级目录为一个,则可以直接获取顶级目录的主记录。
举例来说,以待查找对象C1所在每级目录的名称为“A_B”为例,其中“A”为待查找对象C1所在顶级目录的名称,根据顶级目录的名称“A”获取顶级目录A的主记录,顶级目录A的主记录如图2所示。
步骤402b:根据顶级目录的下一级目录的名称确定顶级目录的下一级目录对应的前缀范围。
由于预先可知顶级目录的主记录包括的多个扩展记录的索引所包括的前缀范围,可以根据顶级目录的下一级目录的名称确定顶级目录的下一级目录的名称的前缀位于多个扩展记录的索引所包括的前缀范围中的一个。
举例来说,由待查找对象C1所在每级目录的名称为“A_B”可知,顶级目录A的下一级目录为目录B,根据目录B的名称“B”的前缀范围确定目录B对应的前缀范围为B0-B7。
步骤402c:在顶级目录的主记录中确定包括顶级目录的下一级目录对应的前缀范围的扩展记录的索引。
在步骤402b中确定顶级目录的下一级目录对应的前缀范围后,在顶级目录的主记录包括的扩展记录的索引所包括的前缀范围中查找与顶级目录的下一级目录对应的前缀范围相同的前缀范围,从而确定出包括该相同的前缀范围的扩展记录的索引。
例如,在顶级目录A的主记录中确定包括顶级目录A的下一级目录B对应的前缀范围B0-B7的扩展记录的索引A1。
步骤402d:根据确定的扩展记录的索引所包括的扩展记录的标识获取顶级目录的下一级目录对应的扩展记录。
针对该步骤,根据上述步骤402的步骤1b中设置包括顶级目录所包含的对象的扩展记录的键值的方式的不同,在该步骤中,根据确定的扩展记录的索引所包括的扩展记录的标识获取顶级目录的下一级目录对应的扩展记录的方式也不同。
如果上述步骤402的步骤1b中将扩展记录的标识设置为扩展记录的键值,则在该步骤中,可以直接将确定的扩展记录的索引所包括的扩展记录的标识确定为顶级目录的下一级目录对应的扩展记录的键值,并根据确定的扩展记录的键值获取顶级目录的下一级目录对应的扩展记录。例如,将确定的扩展记录的索引A1所包括的扩展记录的标识001确定为顶级目录的下一级目录对应的扩展记录的键值,并根据确定的扩展记录的键值获取顶级目录A的下一级目录B对应的扩展记录A1。
如果上述步骤402的步骤1b中将扩展记录的标识和包含该扩展记录的索引的主记录的键值设置为扩展记录的键值,则在该步骤中,将确定的扩展记录的索引所包括的扩展记录的标识和顶级目录的主记录的键值确定为顶级目录的下一级目录对应的扩展记录的键值,并根据确定的扩展记录的键值获取顶级目录的下一级目录对应的扩展记录,例如,将确定的扩展记录的索引A1所包括的扩展记录的标识001和顶级目录A的主记录的键值确定为顶级目录A的下一级目录B对应的扩展记录的键值,从而根据确定的扩展记录的键值获取顶级目录A的下一级目录B对应的扩展记录A1。
步骤402e:根据顶级目录的下一级目录对应的扩展记录获取顶级目录的下一级目录的主记录。
由于顶级目录的下一级目录对应的扩展记录中还包括顶级目录的下一级目录的主记录的键值,根据顶级目录的下一级目录对应的扩展记录获取顶级目录的下一级目录的主记录,包括:
在顶级目录的下一级目录对应的扩展记录中查找与顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取顶目录的下一级目录的主记录。
主记录的键值能够标识该主记录,因此,根据查找到的主记录的键值可以到存储主记录的数据库中获取顶级目录的下一级目录的主记录。
例如,在顶级目录A的下一级目录B对应的扩展记录A1中查找与顶级目录A的下一级目录B的名称B相对应的主记录的键值200,根据查找到的主记录的键值200获取顶级目录A的下一级目录B的主记录。
步骤402f:按照获取顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录。
如果顶级目录的下一级目录即为待查找对象所在的第一级目录,在步骤402e中即可获取到待查找对象所在的第一级目录的主记录,而无需按照步骤402a至步骤402e的方式继续确定其他级目录的主记录。例如,由于顶级目录A的下一级目录B即为待查找对象C1所在的第一级目录,因此在步骤402e中即可获取到待查找对象C1所在的第一级目录B的主记录。如果顶级目录的下一级目录并不是待查找对象所在的第一级目录,则需要按照步骤402a至步骤402e的方式继续获取其他级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录为止。
需要说明的是,如果上述步骤402a至步骤402f的方式为获取待查找对象所在的第一级目录的主记录的获取方式一,上述获取方式一是建立在根据上述设置方式一设置待查找对象所在每级目录的主记录以及对应的扩展记录的基础上的。如果待查找对象所在每级目录是按照上述设置方式二设置的主记录,则可以按照如下获取方式二获取待查找对象所在的第一级目录的主记录:
根据待查找对象所在顶级目录的名称确定预先设置的顶级目录的主记录;在顶级目录的主记录所包括的查找列表中查找与顶级目录的下一级目录的名称相同的名称,并根据查找到的名称所对应的主记录的键值获取顶级目录的下一级目录的主记录;按照获取顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录。
此外,由于待查找对象所在每级目录可以是按照上述设置方式一或设置方式二进行设置的,因此,在获取待查找对象所在的第一级目录的主记录时,可以根据预先设置的每级目录的方式采用上述获取方式一中获取顶级目录的下一级目录的主记录的方式或者采用上述获取方式二中获取顶级目录的下一级目录的主记录的方式来获取每级目录的下一级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录。
在步骤402中获取到待查找对象所在的第一级目录的主记录之后,需要根据第一级目录的主记录获取待查找对象,具体参见以下步骤403至步骤406。
403:根据待查找对象的名称确定待查找对象对应的前缀范围。
该步骤与上述步骤402b相似,可以根据待查找对象的名称确定待查找对象的名称的前缀位于第一级目录包括的多个扩展记录的索引所包括的前缀范围中的一个。
例如,根据待查找对象C1的名称“C1”确定待查找对象对应的前缀范围为C0-C10。
404:在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引。
该步骤与上述步骤402c相似,在第一级目录的主记录包括的扩展记录的索引所包括的前缀范围中查找与待查找对象对应的前缀范围相同的前缀范围,从而确定出包括该相同的前缀范围的扩展记录的索引。
其中,在第一级目录的主记录包括的扩展记录的索引所包括的前缀范围中查找与待查找对象对应的前缀范围相同的前缀范围时,可以采用遍历的方式进行查找。如果第一级目录的主记录包括的扩展记录的索引较多时,查找与待查找对象对应的前缀范围相同的前缀范围的速率较低,从而也会导致后续查找对象的效率降低。因此,除了采用遍历的方式进行查找之外,本发明实施例进一步提供了如下方式进行前缀范围的查找:
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引之前,还包括:将第一级目录的主记录所包括的多个扩展记录的索引按照多个扩展记录的前缀范围进行排序。
相应地,在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,包括:按照二分法在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引。
其中,将第一级目录的主记录所包括的多个扩展记录的索引进行排序时,可以按照多个扩展记录的前缀范围的字典顺序进行排序。按照二分法在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引时,二分法的具体实现方法与现有技术相同,在此不再赘述。由于采用二分法查找可以缩小查找范围,从而可以提高查找速率。
需要说明的是,步骤404与步骤402c相似,因此上述步骤404中在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引的方法也同样适用于步骤402c中在顶级目录的主记录中确定包括顶级目录的下一级目录对应的前缀范围的扩展记录的索引,从而提高步骤402c中确定包括顶级目录的下一级目录对应的前缀范围的扩展记录的索引的速率。
更近一步地,由于在第一级目录包含的对象中,目录和文件由于存储格式的不同,可以根据第一级目录包含的每个对象的存储格式区分每个对象为目录或文件。在上述步骤402的步骤1a中设置第一级目录的主记录以及相应的扩展记录时,将第一级目录包含的对象划分为多组,包括:将第一级目录包括的目录划分为至少一个组,并将第一级目录包括的文件划分为至少一个组。因此,划分得到的多个组中,每组仅包含目录或仅包含文件。
在根据每组包括的对象的名称和地址标识设置每组对应的扩展记录之后,还包括:将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录。
相应地,第一级目录的主记录包括目录扩展记录的索引和文件扩展记录的索引。在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,包括:
如果待查找对象为目录,则在第一级目录的主记录包括的目录扩展记录的索引中确定包括待查找对象对应的前缀范围的目录扩展记录;
如果待查找对象为文件,则在第一级目录的主记录包括的文件扩展记录的索引中确定包括待查找对象对应的前缀范围的文件扩展记录。
其中,待查找对象为目录或文件,可以由用户指定并输入。查找对象的装置根据用户的指定判断待查找对象为目录或文件。
通过在设置扩展记录时将扩展记录按照对象为目录或文件进行区分后,在确定包括待查找对象对应的前缀范围的扩展记录时,可以仅在第一级目录的主记录包括的目录扩展记录的索引或文件扩展记录的索引中继续查找,减少了需要查找的扩展记录的索引的数量,从而提高了查找的速率。当然,此时,仍可以继续将目录扩展记录的索引进行排序,并将文件扩展记录的索引进行排序,在查找时仍按照二分法进行查找,能够进一步提高查找的速率。
除了可以在设置第一级目录的主记录以及相应的扩展记录时,按照对象为目录或文件进行区分,从而可以得到目录扩展记录和文件扩展记录之外,在设置其他级目录的主记录以及相应的扩展记录时,也可以按照对象为目录或文件进行区分。例如,将图5为按照对象为目录或文件进行区分而设置的每级目录的主记录以及相应的扩展记录。
405:根据确定的扩展记录的索引所包括的扩展记录的标识获取待查找对象对应的扩展记录,每个扩展记录包括待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识。
针对该步骤,根据上述步骤402的步骤1b中设置包括待查找对象所在的第一级目录所包含的对象的扩展记录的键值的方式的不同,在该步骤中,根据确定的扩展记录的索引所包括的扩展记录的标识获取顶级目录的下一级目录对应的扩展记录的方式也不同。
如果上述步骤402的步骤1b中将扩展记录的标识设置为扩展记录的键值,则在该步骤中,可以直接将确定的扩展记录的索引所包括的扩展记录的标识确定为待查找对象对应的扩展记录的键值,并根据确定的扩展记录的键值获取待查找对象对应的扩展记录。例如,将确定的扩展记录的索引K1所包括的扩展记录的标识011确定为待查找对象C1对应的扩展记录的键值,并根据确定的扩展记录的键值获取待查找对象C1对应的扩展记录K1。
如果上述步骤402的步骤1b中将扩展记录的标识和包含该扩展记录的索引的主记录的键值设置为扩展记录的键值,则在该步骤中,将确定的扩展记录的索引所包括的扩展记录的标识和第一级目录的主记录的键值确定为待查找对象对应的扩展记录的键值,并根据确定的扩展记录的键值获取待查找对象对应的扩展记录,例如,将确定的扩展记录的索引A1所包括的扩展记录的标识001和第一级目录B的主记录的键值011确定为待查找对象C1对应的扩展记录的键值,从而根据确定的扩展记录的键值获取待查找对象C1对应的扩展记录K1。
406:根据待查找对象对应的扩展记录获取待查找对象。
针对该步骤,根据待查找对象对应的扩展记录获取待查找对象的具体方式包括:在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
其中,在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称时,可以采用遍历的方式进行查找。进一步地,为了提高查找效率,在设置第一级目录的主记录和扩展记录时,上述步骤402的步骤1a中根据每组包括的对象的名称和地址标识设置每组对应的扩展记录时,具体包括:将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录。相应地,在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称,包括:按照二分法在待查找对象对应的扩展记录所包括的名称中查找与待查找对象名称相同的名称。
其中,将每组包括的对象的名称进行排序时,可以按照每组包括的对象的名称的字典顺序进行排序。按照二分法在待查找对象对应的扩展记录所包括的名称中查找与待查找对象名称相同的名称时,二分法的具体实现方法与现有技术相同,在此不再赘述。
举例来说,如图2所示,按照二分法在待查找对象C1对应的扩展记录K1中查找与待查找对象C1的名称“C1”相同的名称,根据查找到的名称所对应的地址标识URL20获取待查找对象C1。
此外,如果在设置第一级目录的主记录的步骤402的步骤1a中,按照对象为目录或文件设置扩展记录,得到的扩展记录仅包括目录或仅包括文件,则每个扩展记录中包含的对象的数量相较于不区分对象为目录或文件而直接设置的扩展记录中包含的对象的数量来说减少了,进而也提高了在该步骤中获取待查找对象的速率。
举例来说,如图5所示,待查找对象C1对应的文件扩展记录J11,在待查找对象C1对应的扩展记录J11中查找与待查找对象C1的名称“C1”相同的名称,根据查找到的名称所对应的地址标识URL20获取待查找对象C1。
在获取到待查找对象之后,可以将获取到的待查找对象返回给用户终端。除此之外,查找对象的装置还可以将查找到的名称所对应的地址标识发送给用户终端,使得用户终端根据查找到的名称所对应的地址标识获取待查找对象。
在执行完毕上述步骤401至步骤406之后,可以获取到待查找对象。而在实际的计算机***中,用户在使用过程中会在目录中不断地新增对象或删除对象,每当用户新增或删除对象后,步骤402中设置的第一级目录的主记录以及相应的扩展记录都需要重新设置。因此,在根据第一级目录包含的对象设置多个扩展记录之后,还包括:
如果第一级目录中新增至少一个对象,则根据新增的对象的名称确定新增的对象对应的扩展记录,并将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录;或者,
如果第一级目录中至少一个对象被删除,则根据被删除的对象的名称确定被删除的对象对应的扩展记录,并将被删除的对象的名称和地址标识从被删除的对象对应的扩展记录中删除。
其中,根据新增的对象的名称确定新增的对象对应的扩展记录,包括根据新增的对象的名称确定新增的对象对应的前缀范围,并在第一级目录的主记录中确定包括新增的对象对应的前缀范围的扩展记录的索引,根据确定的扩展记录的索引确定新增的对象对应的扩展记录。
如果新增的对象的名称与扩展记录中包括与新增的对象的名称相同的名称,将会导致后续查找对象时发生冲突,因此,在将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录之前,还包括:在新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;如果新增的对象对应的扩展记录中不包含与新增的对象的名称相同的名称,则执行将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录的步骤。
由于扩展记录包括的对象的名称的个数较大时,在扩展记录中查找对象所花费的时间将会增多,因而扩展记录包括的对象的名称的个数要保持在一定数值范围内。而在将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录之后,新增的对象对应的扩展记录所包括的对象的名称的个数发生变化。因此,在将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录之后,还包括:
如果新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值,则将新增的对象对应的扩展记录拆分为预设个数的扩展记录,并确定每个拆分后的扩展记录的标识和前缀范围;根据每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引,并将每个拆分后的扩展记录的索引添加到第一级目录的主记录中;在第一级目录的主记录中删除新增的对象对应的拆分前的扩展记录的索引。
其中,拆分阈值可以根据实际情况进行设置,预设个数可以为两个或两个以上,本发明实施例在此对拆分阈值和预设个数均不进行具体限定。在将新增的对象对应的扩展记录拆分为预设个数的扩展记录时,可以均匀拆分得到预设个数的扩展记录,并且,如果新增的对象对应的扩展记录包括的对象的名称和地址标识是排序后的,则按照排序的顺序依次拆分得到预设个数的扩展记录。例如,将新增的对象对应的扩展记录的前一半作为第一个拆分后的扩展记录,将新增的对象对应的扩展记录的后一半作为第二个拆分后的扩展记录。
在拆分得到预设个数的扩展记录后,确定每个拆分后的扩展记录的标识和前缀范围,以及根据每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引的具体方式,可以参见上述步骤402的步骤1a至1d中设置第一级目录包含的对象对应的扩展记录以及第一级目录的主记录的方式相同,在此不再赘述。将每个拆分后的扩展记录的索引添加到第一级目录的主记录中后,为了避免后续查找时产生冲突,还需要在第一级目录的主记录中删除新增的对象对应的拆分前的扩展记录的索引。
此外,由于执行将新增的对象对应的扩展记录拆分为预设个数的扩展记录至将每个拆分后的扩展记录的索引添加到第一级目录的主记录中的操作过程中均可能发生错误,为了避免这个过程中发生错误从而导致数据的丢失,可以将每个拆分后的扩展记录的索引添加到第一级目录的主记录中之后,再将新增的对象对应的拆分前的扩展记录进行删除。
又由于扩展记录包括的对象的名称的个数较小时且包括的对象的名称的个数较小的扩展记录的个数较多时,将会导致先在主记录中查找扩展记录的标识所花费的时间较多,因而扩展记录包括的对象的名称的个数要保持在一定数值范围内。而将被删除的对象的名称和地址标识从被删除的对象对应的扩展记录中删除之后,被删除的对象对应的扩展记录所包括的对象的名称的个数发生变化,因此,在将被删除的对象的名称和地址标识从被删除的对象对应的扩展记录中删除之后还包括:
如果被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值,则将被删除的对象对应的扩展记录与其他扩展记录进行合并,并确定合并后的扩展记录的标识和前缀范围;根据合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引,并将合并后的扩展记录的索引添加到第一级目录的主记录中;在第一级目录的主记录中删除被删除的对象对应的合并前的扩展记录的索引。
其中,合并阈值可以根据实际情况进行设置,本发明实施例在此不进行具体限定。确定合并后的扩展记录的标识和前缀范围,以及根据合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引的具体方式,可以参见上述步骤402的步骤1a至1d中设置第一级目录包含的对象对应的扩展记录以及第一级目录的主记录的方式相同,在此不再赘述。
为了使得合并后的扩展记录的前缀范围与其他未合并的扩展记录的前缀范围不产生重叠,在将被删除的对象对应的扩展记录与其他扩展记录进行合并之前,还包括:按照扩展记录的前缀范围将每个扩展记录进行排序。
相应地,将被删除的对象对应的扩展记录与其他扩展记录进行合并,包括:在与被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;将被删除的对象对应的扩展记录与确定的扩展记录进行合并。
例如,如果扩展记录K2包括的对象的名称的个数小于合并阈值,扩展记录K1的前缀范围为C0-C10,扩展记录K2的前缀范围为C11-C20,扩展记录K1的前缀范围为C21-C30,将扩展记录K1、K2和K3按照前缀范围排序进行排序后,扩展记录K2在相邻的扩展记录K1和K3中确定包括的对象的名称的个数与扩展记录K2所包括的对象的名称的个数之和小于拆分阈值的扩展记录K1,将扩展记录K1和扩展记录K2进行合并,合并后的扩展记录的前缀范围为C0-C20,与扩展记录K3的前缀范围不重叠。
上述在第一级目录中新增目录或删除目录后设置第一级目录的主记录以及相应的扩展记录的方式同样适用于***中的其他级目录,在此不再赘述。
由于在设置第一级目录的主记录和相应的扩展记录时,采用上述设置方式一或设置方式二进行设置的,与第一级目录的对象的个数有关。本发明实施例以采用上述设置方式一设置第一级目录的主记录和相应的扩展记录为例进行说明的,如果在上述删除第一级目录包含的对象后,第一级目录包含的对象的个数减少,需要重新设置第一级目录的主记录。具体包括:确定第一级目录包含的目录的个数及第一级目录包含的文件的个数;根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录。
其中,根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录具体包括以下四种方式:
重设方式一:如果第一级目录包含的目录的个数和第一级目录包含的文件的个数之和小于第一阈值,则根据第一级目录包含的目录所对应的扩展记录和第一级目录包含的文件所对应的扩展记录设置查找列表,查找列表包括第一级目录包含的目录的名称和地址标识,以及第一级目录包含的文件的名称和地址标识;删除第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引,并根据查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括查找列表。
在该重设方式一中,不区分第一级目录包含的对象为目录或文件,第一阈值与上述步骤402的步骤1a至1d中设置第一级目录的主记录以及相对于的扩展记录时所使用的第一阈值相同。重新设置的第一级目录的主记录中不再包括扩展记录的索引,而是包括查找列表。查找列表中除了包括第一级目录包含的目录的名称和地址标识,以及第一级目录包含的文件的名称和地址标识,还包括第一级目录包含的目录的主记录的键值。
举例来说,如果目录B包含的目录的个数和目录B包含的文件的个数之和小于第一阈值,则目录B的主记录由图2或图5的结构在按照上述重设方式一重新设置后,变为如图6(a)所示的结构,其中目录B的主记录包括查找列表,查找列表中包括目录B包含的目录的名称和地址标识以及目录的主记录的键值,还包括目录B包含的文件的名称和地址标识。
由于第一级目录的主记录发生变化,后续继续查找第一级目录包含的对象时,其查找方式也发生相应的变化。根据查找列表重新设置第一级目录的主记录之后,如果需要查找其他待查找对象,可以采用以下方式查找其他待查找对象:
获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
其中,在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称时,可以采用遍历查找的方法。除此之外,在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称之前,还可以将第一级目录的主记录包括的查找列表按照对象的名称进行排序。在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称时,按照二分法在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称,从而能够提高查找的速率。
重设方式二:如果第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数大于等于第三阈值,则根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引,并根据目录查找列表设置第一级目录的主记录,第一级目录的主记录包括目录查找列表。
在该方式二中,区分第一级目录包含的对象为目录或文件。当第一级目录包含的目录个数小于第二阈值且第一级目录包含的文件的个数大于等于第三阈值时,执行上述重设方式二。
其中,第二阈值为设置包括目录查找列表的第一级目录的主记录与设置包括目录扩展记录的索引的第一级目录的主记录之间的临界值,当第一级目录包含的目录的个数小于第二阈值时,按照上述重设方式二设置包括目录查找列表的第一级目录的主记录;当第一级目录包含的目录的个数大于等于第二阈值时,按照步骤402的步骤1a-1d中提供的设置方式一设置包括目录扩展记录的索引的第一级目录的主目录。同样地,第三阈值为设置包括文件查找列表的第一级目录的主记录与设置包括文件扩展记录的索引的第一级目录的主记录之间的临界值,当第一级目录包含的文件的个数小于第三阈值时,按照上述重设方式二设置包括文件查找列表的第一级目录的主记录;当第一级目录包含的文件的个数大于等于第三阈值时,按照步骤402的步骤1a-1d中提供的设置方式一设置包括文件扩展记录的索引的第一级目录的主目录。第二阈值和第三阈值的具体取值可以根据实际情况进行设置,第二阈值与第三阈值可以相等或不相等,本发明实施例对此均不进行具体限定。
为了便于后续的查找,目录查找列表除了包括第一级目录包含的目录的名称和地址标识,还包括第一级目录包含的目录的主记录的键值。在按照上述重设方式二重新设置第一级目录的主记录后,如果第一级目录的主记录中还包括文件扩展记录的索引,则文件扩展记录的索引保持不变。
举例来说,如果目录B包含的目录的个数和小于第二阈值且目录B包含的目录的个数和大于等于第三阈值,则目录B的主记录由图2或图5的结构在按照上述重设方式二重新设置后,变为如图6(b)所示的结构,其中目录查找列表和文件扩展记录的索引,目录查找列表中包括目录B包含的目录的名称和地址标识以及目录的主记录的键值。
重设方式三:如果第一级目录包含的目录的个数大于等于第二阈值且第一级目录包含的文件的个数小于第三阈值,则根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;删除第一级目录的主记录所包括的第一级目录包含的文件所对应的扩展记录的索引,并根据文件查找列表设置第一级目录的主记录,第一级目录的主记录包括文件查找列表。
在该重设方式三中,区分第一级目录包含的对象为目录或文件。当第一级目录包含的目录的个数大于等于第二阈值且第一级目录包含的文件的个数小于第三阈值时,执行上述重设方式三。其中,第二阈值和第三阈值与重设方式二相同,在此不再赘述。
在按照上述重设方式三重新设置第一级目录的主记录后,如果第一级目录的主记录中还包括目录扩展记录的索引,则目录扩展记录的索引保持不变。
举例来说,如果目录B包含的目录的个数大于等于第二阈值而目录B包含的文件数和小于第三阈值,则目录B的主记录由图2或图5的结构在按照上述重设方式三重新设置后,变为如图6(c)所示的结构,其中目录扩展记录的索引和文件查找列表,文件查找列表中包括目录B包含的目录的名称和地址标识。
重设方式四:如果第一级目录包含的目录的个数小于第二阈值,第一级目录包含的文件的个数小于第三阈值,则根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,目录查找列表中包括第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引,并根据目录查找列表和文件查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括目录查找列表和文件查找列表。
在该重设方式四中,区分第一级目录包含的对象为目录或文件。当第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数小于第三阈值时,执行上述重设方式四。其中,第二阈值和第三阈值与上述重设方式二和重设方式三相同。在重新设置第一级目录的主记录之后,重新设置的第一级目录的主记录中不再包括目录扩展记录的索引和文件扩展记录的索引,而是包括目录查找列表和文件查找列表。目录查找列表除了包括第一级目录包含的目录的名称和地址标识,还包括第一级目录包含的目录的主记录的键值。
举例来说,如果目录B包含的目录的个数小于第二阈值而目录B包含的文件数和小于第三阈值,目录B的主记录由图2或图5的结构在按照上述重设方式四重新设置后,变为如图6(d)所示的结构,其中目录查找列表和文件查找列表,目录查找列表中包括目录B包含的目录的名称和地址标识以及目录的主记录的键值,文件查找列表中包括目录B包含的目录的名称和地址标识。
由于第一级目录的主记录发生变化,后续继续查找第一级目录包含的对象时,其查找方式也方式相应的变化。根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录之后,如果需要查找其他待查找对象,可以采用以下方式查找其他待查找对象:
获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
如果待查找对象为目录,则根据待查找对象的名称在第一级目录的主记录包括的目录查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象;
如果待查找对象为文件,则根据待查找对象的名称在第一级目录的主记录包括的文件查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
其中,在第一级目录的主记录包括的目录查找列表或文件查找列表所包括的名称中查找与待查找对象的名称相同的名称时,可以采用遍历查找的方法。除此之外,在第一级目录的主记录包括的目录查找列表或文件查找列表所包括的名称中查找与待查找对象的名称相同的名称之前,还可以将第一级目录的主记录包括的目录查找列表按照目录的名称进行排序,并将第一级目录的主记录包括的文件查找列表按照文件的名称进行排序。在第一级目录的主记录包括的目录查找列表或文件查找列表所包括的名称中查找与待查找对象的名称相同的名称时,按照二分法在第一级目录的主记录包括的目录查找列表或文件查找列表所包括的名称中查找与待查找对象的名称相同的名称,从而能够提高查找的速率。
需要说明的是,由于其他级目录中也会删除其他级目录包含的对象,在删除其他级目录包含的对象后,也可以确定第一级目录包含的目录的个数及第一级目录包含的文件的个数;并按照上述重设方式一至重设方式四中的任一方式根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录,在此不再赘述。
综上所述,本发明实施例提供的方法,通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。并且,通过对扩展记录中包含的对象进行排序,从而可以采用二分法查找待查找对象,或者通过将第一级目录包含的目录的名称和文件的名称分别包括到对应的目录扩展记录和文件扩展记录中,进一步减少了查找待查找对象所花费的时间,进一步提高了查找对象的效率。
实施例三
本发明实施例提供了一种查找对象的装置,该装置用于执行上述实施例一或实施例二提供的查找对象的方法。参见图7,该装置包括:
第一获取模块701,用于获取待查找对象的名称,待查找对象为目录或文件;
第二获取模块702,用于获取预先设置的待查找对象所在的第一级目录的主记录,第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
第一确定模块703,用于根据第一获取模块701获取到的待查找对象的名称确定待查找对象对应的前缀范围;
第二确定模块704,用于在第一确定模块703确定的第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引;
第三获取模块705,用于根据第二确定模块704确定的扩展记录的索引所包括的扩展记录的标识获取待查找对象对应的扩展记录;
第四获取模块706,用于根据第三获取模块705获取到的待查找对象对应的扩展记录获取待查找对象;
其中,每个扩展记录包括待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,对象为目录或文件。
进一步地,该装置还包括:
第五获取模,用于获取待查找对象所在每级目录的名称;
第二获取模块,用于根据第五获取模块获取到的待查找对象所在每级目录的名称获取预先设置的待查找对象所在的第一级目录的主记录。
优选地,第二获取模,包括:
第一获取单元,用于根据待查找对象所在顶级目录的名称获取预先设置的顶级目录的主记录;
第一确定单元,用于根据顶级目录的下一级目录的名称确定顶级目录的下一级目录对应的前缀范围;
第二确定单元,用于在第一获取单元获取到的顶级目录的主记录中确定包括第一确定单元确定的顶级目录的下一级目录对应的前缀范围的扩展记录的索引;
第二获取单元,用于根据第二确定单元确定的扩展记录的索引所包括的扩展记录的标识获取顶级目录的下一级目录对应的扩展记录;
第三获取单元,用于根据第二获取单元获取到的顶级目录的下一级目录对应的扩展记录获取顶级目录的下一级目录的主记录;
处理单元,用于按照获取顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录。
优选地,顶级目录的下一级目录对应的扩展记录中还包括顶级目录的下一级目录的主记录的键值,第三获取单元,用于在顶级目录的下一级目录对应的扩展记录中查找与顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取顶目录的下一级目录的主记录。
具体地,第四获取模,包括:
查找单元,用于在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称;
获取单元,用于根据查找单元查找到的名称所对应的地址标识获取待查找对象。
进一步地,该装置还包括:
第一排序模,用于将第一级目录的主记录所包括的多个扩展记录的索引按照多个扩展记录的前缀范围进行排序;
第二确定模块,用于按照二分法在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引。
进一步地,该装置还包括:
第一设置模块,用于根据第一级目录包含的对象设置多个扩展记录;
第三确定模块,用于确定第一设置模块设置的每个扩展记录的标识和前缀范围;
第一生成模块,用于根据第三确定模块确定的每个扩展记录的标识和前缀范围生成每个扩展记录的索引;
第二设置模块,用于设置第一级目录的主记录,第一级目录的主记录包括第一生成模块生成的多个扩展记录的索引。
优选地,该装置还包括:
第四确定模块,用于确定第一级目录包含的对象的个数;
如果第四确定模块确定的第一级目录包含的对象的个数达到第一阈值,则执行第一设置模块。
具体地,第一设置模块,包括:
划分单元,用于将第一级目录包含的对象划分为多个组,每组至少包括一个对象;
设置单元,用于根据划分单元划分的每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
具体地,第三确定模块,用于为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
优选地,如果第一级目录包含的对象中有至少一个对象为目录,参见图15,该装置还包括:
第三设置模块,用于设置至少一个对象的主记录的键值;
第四设置模块,用于在包括至少一个对象的名称的扩展记录中设置第三设置模块设置的至少一个对象的主记录的键值。
具体地,第三设置模块,用于生成至少一个对象的UUID,并根据至少一个对象的UUID设置至少一个对象的主记录的键值。
优选地,第一设置模块的设置单元,用于将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
第四获取模块的查找单元,用于按照二分法在待查找对象对应的扩展记录所包括的名称中查找与待查找对象名称相同的名称。
优选地,第一设置模块的划分单元,用于将第一级目录包括的目录划分为至少一个组,并将第一级目录包括的文件划分为至少一个组;
第一设置模块的设置单元根据每组包括的对象的名称和地址标识设置每组对应的扩展记录之后,将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
第二确定模块,用于在待查找对象为目录时,在第一级目录的主记录包括的目录扩展记录的索引中确定包括待查找对象对应的前缀范围的目录扩展记录;在待查找对象为文件时,在第一级目录的主记录包括的文件扩展记录的索引中确定包括待查找对象对应的前缀范围的文件扩展记录。
进一步地,该装置还包括:
新增模块,用于在第一级目录中新增至少一个对象时,根据新增的对象的名称确定新增的对象对应的扩展记录,并将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录;
第一删除模块,用于在第一级目录中至少一个对象被删除时,根据被删除的对象的名称确定被删除的对象对应的扩展记录,并将被删除的对象的名称和地址标识从被删除的对象对应的扩展记录中删除。
进一步地,该装置还包括:
第五确定模块,用于在新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果第五确定模块确定的新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行新增模块。
优选地,该装置还包括:
拆分模块,用于在新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值时,将新增的对象对应的扩展记录拆分为预设个数的扩展记录;
第六确定模块,用于确定拆分模块拆分后得到的每个拆分后的扩展记录的标识和前缀范围;
第二生成模块,用于根据第六确定模块确定的每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引;
第一添加模块,用于将第二生成模块生成的每个拆分后的扩展记录的索引添加到第一级目录的主记录中;
第二删除模块,用于在第一级目录的主记录中删除新增的对象对应的拆分前的扩展记录的索引。
优选地,该装置还包括:
第三删除模块,用于在所述第一添加模块将所述第二生成模块生成的每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中之后,将新增的对象对应的拆分前的扩展记录进行删除。
优选地,该装置还包括:
合并模块,用于在被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值时,将被删除的对象对应的扩展记录与其他扩展记录进行合并;
第七确定模块,用于确定合并模块合并后的扩展记录的标识和前缀范围;
第三生成模块,用于根据合并模块合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引;
第二添加模块,用于将第三生成模块生成的合并后的扩展记录的索引添加到第一级目录的主记录中;
第四删除模块,用于在第一级目录的主记录中删除被删除的对象对应的合并前的扩展记录的索引。
优选地,该装置还包括:
第五删除模块,用于在所述第二添加模块将所述第三生成模块生成的合并后的扩展记录的索引添加到所述第一级目录的主记录中之后,将被删除的对象对应的合并前的扩展记录进行删除。
优选地,该装置还包括:
第二排序模块,用于按照扩展记录的前缀范围将每个扩展记录进行排序;
合并模块,用于在与被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;将被删除的对象对应的扩展记录与确定的扩展记录进行合并。
优选地,该装置还包括:
第八确定模块,用于确定第一级目录包含的目录的个数及第一级目录包含的文件的个数;
第五设置模块,用于根据第八确定模块确定的第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录。
优选地,第五设置模块,包括:
第一设置单元,用于在第一级目录包含的目录的个数和第一级目录包含的文件的个数之和小于第一阈值时,根据第一级目录包含的目录所对应的扩展记录和第一级目录包含的文件所对应的扩展记录设置查找列表,查找列表包括第一级目录包含的目录的名称和地址标识,以及第一级目录包含的文件的名称和地址标识;
第一删除单元,用于删除第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引;
第二设置单元,用于根据查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括查找列表。
优选地,第一设置单元设置的查找列表还包括第一级目录包含的目录的主记录的键值。
优选地,该装置还包括:
第六获取模块,用于获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
第一查找模块,用于在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称;
第七获取模块,用于根据查找到的名称所对应的地址标识获取待查找对象。
优选地,第五设置模块,包括:
第三设置单元,用于在第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数大于等于第三阈值时,根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
第二删除单元,用于删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引;
第四设置单元,用于根据第三设置模块设置的目录查找列表设置第一级目录的主记录,第一级目录的主记录包括目录查找列表。
优选地,第五设置模块,包括:
第五设置单元,用于在第一级目录包含的目录的个数大于等于第二阈值且第一级目录包含的文件的个数小于第三阈值时,根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
第三删除单元,用于删除第一级目录的主记录所包括的第一级目录包含的文件所对应的扩展记录的索引;
第六设置单元,用于根据第五设置单元文件查找列表设置第一级目录的主记录,第一级目录的主记录包括文件查找列表。
优选地,第五设置模块,包括:
第七设置单元,用于在第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数小于第三阈值时,根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
第四删除单元,用于删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引;
第八设置单元,用于根据第七设置单元设置的目录查找列表和文件查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括目录查找列表和文件查找列表。
优选地,第三设置单元或第七设置单元设置的目录查找列表还包括第一级目录包含的目录的主记录的键值。
优选地,该装置还包括:
第八获取模块,用于获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
第二查找模块,用于在待查找对象为目录时,根据待查找对象的名称在第一级目录的主记录包括的目录查找列表所包括的名称中查找与待查找对象的名称相同的名称;
第九获取模块,用于根据第二查找模块查找到的名称所对应的地址标识获取待查找对象;
第三查找模块,用于在待查找对象为文件时,根据待查找对象的名称在第一级目录的主记录包括的文件查找列表所包括的名称中查找与待查找对象的名称相同的名称;
第十获取模块,用于根据第三查找模块查找到的名称所对应的地址标识获取待查找对象。
综上所述,本发明实施例提供的装置,通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。并且,通过对扩展记录中包含的对象进行排序,从而可以采用二分法查找待查找对象,或者通过将第一级目录包含的目录的名称和文件的名称分别包括到对应的目录扩展记录和文件扩展记录中,进一步减少了查找待查找对象所花费的时间,进一步提高了查找对象的效率。
实施例四
参见图8,本发明实施例提供了一种终端,该终端可以用于实施上述实施例中提供的查找对象的方法。具体来讲:
终端800可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图8中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端800还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端800之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端800的通信。
WiFi属于短距离无线传输技术,终端800通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端800的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端800的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端800还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
获取待查找对象的名称,待查找对象为目录或文件;
获取预先设置的待查找对象所在的第一级目录的主记录,第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
根据待查找对象的名称确定待查找对象对应的前缀范围;
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取待查找对象对应的扩展记录;
根据待查找对象对应的扩展记录获取待查找对象;
其中,每个扩展记录包括待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,对象为目录或文件。
进一步地,终端的存储器中,还包含用于执行以下操作的指令:
获取待查找对象所在每级目录的名称;
获取预先设置的待查找对象所在的第一级目录的主记录,包括:
根据待查找对象所在每级目录的名称获取预先设置的待查找对象所在的第一级目录的主记录。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
根据待查找对象所在顶级目录的名称获取预先设置的顶级目录的主记录;
根据顶级目录的下一级目录的名称确定顶级目录的下一级目录对应的前缀范围;
在顶级目录的主记录中确定包括顶级目录的下一级目录对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取顶级目录的下一级目录对应的扩展记录;
根据顶级目录的下一级目录对应的扩展记录获取顶级目录的下一级目录的主记录;
按照获取顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录。
优选地,顶级目录的下一级目录对应的扩展记录中还包括顶级目录的下一级目录的主记录的键值,终端的存储器中,还包含用于执行以下操作的指令:
在顶级目录的下一级目录对应的扩展记录中查找与顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取顶目录的下一级目录的主记录。
具体地,终端的存储器中,还包含用于执行以下操作的指令:
在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
进一步地,终端的存储器中,还包含用于执行以下操作的指令:
将第一级目录的主记录所包括的多个扩展记录的索引按照多个扩展记录的前缀范围进行排序;
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,包括:
按照二分法在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引。
进一步地,终端的存储器中,还包含用于执行以下操作的指令:
根据第一级目录包含的对象设置多个扩展记录,并确定每个扩展记录的标识和前缀范围;
根据每个扩展记录的标识和前缀范围生成每个扩展记录的索引,并设置第一级目录的主记录,第一级目录的主记录包括生成的多个扩展记录的索引。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
确定第一级目录包含的对象的个数;
如果第一级目录包含的对象的个数达到第一阈值,则执行根据第一级目录包含的对象设置多个扩展记录的步骤。
具体地,终端的存储器中,还包含用于执行以下操作的指令:
将第一级目录包含的对象划分为多个组,每组至少包括一个对象;
根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
具体地,终端的存储器中,还包含用于执行以下操作的指令:
为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
设置至少一个对象的主记录的键值;
相应地,终端的存储器中,还包含用于执行以下操作的指令:
在包括至少一个对象的名称的扩展记录中设置至少一个对象的主记录的键值。
具体地,终端的存储器中,还包含用于执行以下操作的指令:
生成至少一个对象的UUID,并根据至少一个对象的UUID设置至少一个对象的主记录的键值。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称,包括:
按照二分法在待查找对象对应的扩展记录所包括的名称中查找与待查找对象名称相同的名称。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
将第一级目录包括的目录划分为至少一个组,并将第一级目录包括的文件划分为至少一个组;
将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
如果待查找对象为目录,则在第一级目录的主记录包括的目录扩展记录的索引中确定包括待查找对象对应的前缀范围的目录扩展记录;
如果待查找对象为文件,则在第一级目录的主记录包括的文件扩展记录的索引中确定包括待查找对象对应的前缀范围的文件扩展记录。
进一步地,终端的存储器中,还包含用于执行以下操作的指令:
如果第一级目录中新增至少一个对象,则根据新增的对象的名称确定新增的对象对应的扩展记录,并将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录;或者,
如果第一级目录中至少一个对象被删除,则根据被删除的对象的名称确定被删除的对象对应的扩展记录,并将被删除的对象的名称和地址标识从被删除的对象对应的扩展记录中删除。
进一步地,终端的存储器中,还包含用于执行以下操作的指令:
在新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录的步骤。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
如果新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值,则将新增的对象对应的扩展记录拆分为预设个数的扩展记录,并确定每个拆分后的扩展记录的标识和前缀范围;
根据每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引,并将每个拆分后的扩展记录的索引添加到第一级目录的主记录中;
在第一级目录的主记录中删除新增的对象对应的拆分前的扩展记录的索引。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
在将每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中之后,将新增的对象对应的拆分前的扩展记录进行删除。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
如果被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值,则将被删除的对象对应的扩展记录与其他扩展记录进行合并,并确定合并后的扩展记录的标识和前缀范围;
根据合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引,并将合并后的扩展记录的索引添加到第一级目录的主记录中;
在第一级目录的主记录中删除被删除的对象对应的合并前的扩展记录的索引。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
在将合并后的扩展记录的索引添加到所述第一级目录的主记录中之后,将被删除的对象对应的合并前的扩展记录进行删除。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
按照扩展记录的前缀范围将每个扩展记录进行排序;
将被删除的对象对应的扩展记录与其他扩展记录进行合并,包括:
在与被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;
将被删除的对象对应的扩展记录与确定的扩展记录进行合并。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
确定第一级目录包含的目录的个数及第一级目录包含的文件的个数;
根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
如果第一级目录包含的目录的个数和第一级目录包含的文件的个数之和小于第一阈值,则根据第一级目录包含的目录所对应的扩展记录和第一级目录包含的文件所对应的扩展记录设置查找列表,查找列表包括第一级目录包含的目录的名称和地址标识,以及第一级目录包含的文件的名称和地址标识;
删除第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引,并根据查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括查找列表。
优选地,查找列表还包括第一级目录包含的目录的主记录的键值。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
如果第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数大于等于第三阈值,则根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引,并根据目录查找列表设置第一级目录的主记录,第一级目录的主记录包括目录查找列表。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
如果第一级目录包含的目录的个数大于等于第二阈值且第一级目录包含的文件的个数小于第三阈值,则根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除第一级目录的主记录所包括的第一级目录包含的文件所对应的扩展记录的索引,并根据文件查找列表设置第一级目录的主记录,第一级目录的主记录包括文件查找列表。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
如果第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数小于第三阈值,则根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引,并根据目录查找列表和文件查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括目录查找列表和文件查找列表。
优选地,目录查找列表还包括第一级目录包含的目录的主记录的键值。
优选地,终端的存储器中,还包含用于执行以下操作的指令:
获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
如果待查找对象为目录,则根据待查找对象的名称在第一级目录的主记录包括的目录查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象;
如果待查找对象为文件,则根据待查找对象的名称在第一级目录的主记录包括的文件查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
综上,本发明实施例提供的终端,通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。并且,通过对扩展记录中包含的对象进行排序,从而可以采用二分法查找待查找对象,或者通过将第一级目录包含的目录的名称和文件的名称分别包括到对应的目录扩展记录和文件扩展记录中,进一步减少了查找待查找对象所花费的时间,进一步提高了查找对象的效率。
实施例五
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,一个或者一个以上程序被一个或者一个以上的处理器用来执行一个查找对象的方法,所述方法包括:
获取待查找对象的名称,待查找对象为目录或文件;
获取预先设置的待查找对象所在的第一级目录的主记录,第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
根据待查找对象的名称确定待查找对象对应的前缀范围;
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取待查找对象对应的扩展记录;
根据待查找对象对应的扩展记录获取待查找对象;
其中,每个扩展记录包括待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,对象为目录或文件。
进一步地,该方法还包括:
获取待查找对象所在每级目录的名称;
获取预先设置的待查找对象所在的第一级目录的主记录,包括:
根据待查找对象所在每级目录的名称获取预先设置的待查找对象所在的第一级目录的主记录。
优选地,根据待查找对象所在每级目录的名称获取预先设置的待查找对象所在的第一级目录的主记录,包括:
根据待查找对象所在顶级目录的名称获取预先设置的顶级目录的主记录;
根据顶级目录的下一级目录的名称确定顶级目录的下一级目录对应的前缀范围;
在顶级目录的主记录中确定包括顶级目录的下一级目录对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取顶级目录的下一级目录对应的扩展记录;
根据顶级目录的下一级目录对应的扩展记录获取顶级目录的下一级目录的主记录;
按照获取顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的待查找对象所在的第一级目录的主记录。
优选地,顶级目录的下一级目录对应的扩展记录中还包括顶级目录的下一级目录的主记录的键值,根据顶级目录的下一级目录对应的扩展记录获取顶级目录的下一级目录的主记录,包括:
在顶级目录的下一级目录对应的扩展记录中查找与顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取顶目录的下一级目录的主记录。
具体地,根据待查找对象对应的扩展记录获取待查找对象,包括:
在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
进一步地,该方法还包括:
将第一级目录的主记录所包括的多个扩展记录的索引按照多个扩展记录的前缀范围进行排序;
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,包括:
按照二分法在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引。
进一步地,该方法还包括:
根据第一级目录包含的对象设置多个扩展记录,并确定每个扩展记录的标识和前缀范围;
根据每个扩展记录的标识和前缀范围生成每个扩展记录的索引,并设置第一级目录的主记录,第一级目录的主记录包括生成的多个扩展记录的索引。
优选地,该方法还包括:
确定第一级目录包含的对象的个数;
如果第一级目录包含的对象的个数达到第一阈值,则执行根据第一级目录包含的对象设置多个扩展记录的步骤。
具体地,根据第一级目录包含的对象设置多个扩展记录,包括:
将第一级目录包含的对象划分为多个组,每组至少包括一个对象;
根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
具体地,确定每个扩展记录的标识和前缀范围,包括:
为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
优选地,如果第一级目录包含的对象中有至少一个对象为目录,该方法还包括:
设置至少一个对象的主记录的键值;
相应地,该方法还包括:
在包括至少一个对象的名称的扩展记录中设置至少一个对象的主记录的键值。
具体地,设置至少一个对象的主记录的键值,包括:
生成至少一个对象的UUID,并根据至少一个对象的UUID设置至少一个对象的主记录的键值。
优选地,根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,包括:
将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
在待查找对象对应的扩展记录所包括的名称中查找与待查找对象的名称相同的名称,包括:
按照二分法在待查找对象对应的扩展记录所包括的名称中查找与待查找对象名称相同的名称。
优选地,将第一级目录包含的对象划分为多组,包括:
将第一级目录包括的目录划分为至少一个组,并将第一级目录包括的文件划分为至少一个组;
该方法还包括:将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
在第一级目录的主记录中确定包括待查找对象对应的前缀范围的扩展记录的索引,包括:
如果待查找对象为目录,则在第一级目录的主记录包括的目录扩展记录的索引中确定包括待查找对象对应的前缀范围的目录扩展记录;
如果待查找对象为文件,则在第一级目录的主记录包括的文件扩展记录的索引中确定包括待查找对象对应的前缀范围的文件扩展记录。
进一步地,该方法还包括:
如果第一级目录中新增至少一个对象,则根据新增的对象的名称确定新增的对象对应的扩展记录,并将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录;或者,
如果第一级目录中至少一个对象被删除,则根据被删除的对象的名称确定被删除的对象对应的扩展记录,并将被删除的对象的名称和地址标识从被删除的对象对应的扩展记录中删除。
进一步地,该方法还包括:
在新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行将新增的对象的名称和地址标识添加到新增的对象对应的扩展记录的步骤。
优选地,该方法还包括:
如果新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值,则将新增的对象对应的扩展记录拆分为预设个数的扩展记录,并确定每个拆分后的扩展记录的标识和前缀范围;
根据每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引,并将每个拆分后的扩展记录的索引添加到第一级目录的主记录中;
在第一级目录的主记录中删除新增的对象对应的拆分前的扩展记录的索引。
优选地,该方法还包括:
在将每个拆分后的扩展记录的索引添加到第一级目录的主记录中之后,将新增的对象对应的拆分前的扩展记录进行删除。
优选地,该方法还包括:
如果被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值,则将被删除的对象对应的扩展记录与其他扩展记录进行合并,并确定合并后的扩展记录的标识和前缀范围;
根据合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引,并将合并后的扩展记录的索引添加到第一级目录的主记录中;
在第一级目录的主记录中删除被删除的对象对应的合并前的扩展记录的索引。
优选地,该方法还包括:
将合并后的扩展记录的索引添加到第一级目录的主记录中之后,将被删除的对象对应的合并前的扩展记录进行删除。
优选地,该方法还包括:
按照扩展记录的前缀范围将每个扩展记录进行排序;
将被删除的对象对应的扩展记录与其他扩展记录进行合并,包括:
在与被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;
将被删除的对象对应的扩展记录与确定的扩展记录进行合并。
优选地,该方法还包括:
确定第一级目录包含的目录的个数及第一级目录包含的文件的个数;
根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录。
优选地,根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录,包括:
如果第一级目录包含的目录的个数和第一级目录包含的文件的个数之和小于第一阈值,则根据第一级目录包含的目录所对应的扩展记录和第一级目录包含的文件所对应的扩展记录设置查找列表,查找列表包括第一级目录包含的目录的名称和地址标识,以及第一级目录包含的文件的名称和地址标识;
删除第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引,并根据查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括查找列表。
优选地,查找列表还包括第一级目录包含的目录的主记录的键值。
优选地,该方法还包括:
获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
在第一级目录的主记录包括的查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
优选地,根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录,包括:
如果第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数大于等于第三阈值,则根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引,并根据目录查找列表设置第一级目录的主记录,第一级目录的主记录包括目录查找列表。
优选地,根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录,包括:
如果第一级目录包含的目录的个数大于等于第二阈值且第一级目录包含的文件的个数小于第三阈值,则根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除第一级目录的主记录所包括的第一级目录包含的文件所对应的扩展记录的索引,并根据文件查找列表设置第一级目录的主记录,第一级目录的主记录包括文件查找列表。
优选地,根据第一级目录包含的目录的个数和第一级目录包含的文件的个数重新设置第一级目录的主记录,包括:
如果第一级目录包含的目录的个数小于第二阈值且第一级目录包含的文件的个数小于第三阈值,则根据第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据第一级目录包含的文件所对应的扩展记录设置文件查找列表,目录查找列表包括第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,文件查找列表包括第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除第一级目录的主记录所包括的第一级目录包含的目录所对应的扩展记录的索引和第一级目录包含的文件所对应的扩展记录的索引,并根据目录查找列表和文件查找列表重新设置第一级目录的主记录,第一级目录的主记录中包括目录查找列表和文件查找列表。
优选地,目录查找列表还包括第一级目录包含的目录的主记录的键值。
优选地,该方法还包括:
获取其他待查找对象的名称,并获取其他待查找对象所在的第一级目录的主记录;
如果待查找对象为目录,则根据待查找对象的名称在第一级目录的主记录包括的目录查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象;
如果待查找对象为文件,则根据待查找对象的名称在第一级目录的主记录包括的文件查找列表所包括的名称中查找与待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取待查找对象。
综上所述,本发明实施例提供的计算机可读存储介质,通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。并且,通过对扩展记录中包含的对象进行排序,从而可以采用二分法查找待查找对象,或者通过将第一级目录包含的目录的名称和文件的名称分别包括到对应的目录扩展记录和文件扩展记录中,进一步减少了查找待查找对象所花费的时间,进一步提高了查找对象的效率。
实施例六
本发明实施例提供了一种图形用户接口,所述图形用户接口用在终端上,所述终端包括触摸屏显示器、存储器和用于执行一个或者一个以上的程序的一个或者一个以上的处理器;所述图形用户接口包括:
获取待查找对象的名称,所述待查找对象为目录或文件;
获取预先设置的所述待查找对象所在的第一级目录的主记录,所述第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
根据所述待查找对象的名称确定所述待查找对象对应的前缀范围;
在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取所述待查找对象对应的扩展记录;
根据所述待查找对象对应的扩展记录获取所述待查找对象;
其中,每个扩展记录包括所述待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,所述对象为目录或文件。
综上所述,本发明实施例提供的图形用户接口,通过获取预先设置的待查找对象所在的第一级目录的主记录,并根据待查找对象的名称在第一级目录的主记录中确定待查找对象对应的扩展记录后,在确定的扩展记录查找并获取待查找对象,由于扩展记录中包括第一级目录所包含的一部分对象而不是全部对象的名称,减少了在扩展记录中查找与待查找对象的名称相同的名称时所花费的时间,从而提高了查找对象的效率。
需要说明的是:上述实施例提供的查找对象的装置在查找对象时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将查找对象的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的查找对象的装置与查找对象的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (60)
1.一种查找对象的方法,其特征在于,所述方法包括:
获取待查找对象的名称,所述待查找对象为目录或文件;
获取预先设置的所述待查找对象所在的第一级目录的主记录,所述第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
根据所述待查找对象的名称确定所述待查找对象对应的前缀范围;
在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取所述待查找对象对应的扩展记录;
根据所述待查找对象对应的扩展记录获取所述待查找对象;
其中,每个扩展记录包括所述待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,所述对象为目录或文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述待查找对象所在每级目录的名称;
所述获取预先设置的所述待查找对象所在的第一级目录的主记录,包括:
根据所述待查找对象所在每级目录的名称获取预先设置的所述待查找对象所在的第一级目录的主记录。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待查找对象所在每级目录的名称获取预先设置的所述待查找对象所在的第一级目录的主记录,包括:
根据所述待查找对象所在顶级目录的名称获取预先设置的所述顶级目录的主记录;
根据所述顶级目录的下一级目录的名称确定所述顶级目录的下一级目录对应的前缀范围;
在所述顶级目录的主记录中确定包括所述顶级目录的下一级目录对应的前缀范围的扩展记录的索引,并根据确定的扩展记录的索引所包括的扩展记录的标识获取所述顶级目录的下一级目录对应的扩展记录;
根据所述顶级目录的下一级目录对应的扩展记录获取所述顶级目录的下一级目录的主记录;
按照获取所述顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的所述待查找对象所在的第一级目录的主记录。
4.根据权利要求3所述的方法,其特征在于,所述顶级目录的下一级目录对应的扩展记录中还包括所述顶级目录的下一级目录的主记录的键值,所述根据所述顶级目录的下一级目录对应的扩展记录获取所述顶级目录的下一级目录的主记录,包括:
在所述顶级目录的下一级目录对应的扩展记录中查找与所述顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取所述顶目录的下一级目录的主记录。
5.根据权利要求1所述的方法,其特征在于,所述根据所述待查找对象对应的扩展记录获取所述待查找对象,包括:
在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一级目录的主记录所包括的多个扩展记录的索引按照所述多个扩展记录的前缀范围进行排序;
所述在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,包括:
按照二分法在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引。
7.根据权利要求1至6中任一权利要求所述的方法,其特征在于,所述方法还包括:
根据所述第一级目录包含的对象设置多个扩展记录,并确定每个扩展记录的标识和前缀范围;
根据每个扩展记录的标识和前缀范围生成每个扩展记录的索引,并设置所述第一级目录的主记录,所述第一级目录的主记录包括生成的多个扩展记录的索引。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
确定所述第一级目录包含的对象的个数;
如果所述第一级目录包含的对象的个数达到第一阈值,则执行根据所述第一级目录包含的对象设置多个扩展记录的步骤。
9.根据权利要求7所述的方法,其特征在于,所述根据所述第一级目录包含的对象设置多个扩展记录,包括:
将所述第一级目录包含的对象划分为多个组,每组至少包括一个对象;
根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
10.根据权利要求9所述的方法,其特征在于,所述确定每个扩展记录的标识和前缀范围,包括:
为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
11.根据权利要求9所述的方法,其特征在于,如果所述第一级目录包含的对象中有至少一个对象为目录,所述方法还包括:
设置所述至少一个对象的主记录的键值;
相应地,所述方法还包括:
在包括所述至少一个对象的名称的扩展记录中设置所述至少一个对象的主记录的键值。
12.根据权利要求11所述的方法,其特征在于,所述设置所述至少一个对象的主记录的键值,包括:
生成所述至少一个对象的通用唯一识别码UUID,并根据所述至少一个对象的UUID设置所述至少一个对象的主记录的键值。
13.根据权利要求9所述的方法,其特征在于,所述根据每组包括的对象的名称和地址标识设置每组对应的扩展记录,包括:
将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
所述在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象的名称相同的名称,包括:
按照二分法在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象名称相同的名称。
14.根据权利要求9所述的方法,其特征在于,所述将所述第一级目录包含的对象划分为多组,包括:
将所述第一级目录包括的目录划分为至少一个组,并将所述第一级目录包括的文件划分为至少一个组;
所述方法还包括:将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
所述在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引,包括:
如果所述待查找对象为目录,则在所述第一级目录的主记录包括的目录扩展记录的索引中确定包括所述待查找对象对应的前缀范围的目录扩展记录;
如果所述待查找对象为文件,则在所述第一级目录的主记录包括的文件扩展记录的索引中确定包括所述待查找对象对应的前缀范围的文件扩展记录。
15.根据权利要求9至14中任一权利要求所述的方法,其特征在于,所述方法还包括:
如果所述第一级目录中新增至少一个对象,则根据新增的对象的名称确定所述新增的对象对应的扩展记录,并将所述新增的对象的名称和地址标识添加到所述新增的对象对应的扩展记录;或者,
如果所述第一级目录中至少一个对象被删除,则根据被删除的对象的名称确定所述被删除的对象对应的扩展记录,并将所述被删除的对象的名称和地址标识从所述被删除的对象对应的扩展记录中删除。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
在所述新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果所述新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行将所述新增的对象的名称和地址标识添加到所述新增的对象对应的扩展记录的步骤。
17.根据权利要求15所述的方法,其特征在于,所述方法还包括:
如果所述新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值,则将所述新增的对象对应的扩展记录拆分为预设个数的扩展记录,并确定每个拆分后的扩展记录的标识和前缀范围;
根据每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引,并将每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中;
在所述第一级目录的主记录中删除所述新增的对象对应的拆分前的扩展记录的索引。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
在将每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述新增的对象对应的拆分前的扩展记录进行删除。
19.根据权利要求15所述的方法,其特征在于,所述方法还包括:
如果所述被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值,则将所述被删除的对象对应的扩展记录与其他扩展记录进行合并,并确定合并后的扩展记录的标识和前缀范围;
根据合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引,并将合并后的扩展记录的索引添加到所述第一级目录的主记录中;
在所述第一级目录的主记录中删除所述被删除的对象对应的合并前的扩展记录的索引。
20.根据权利要求19所述的方法,其特征在于,所述方法还包括:
在将合并后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述被删除的对象对应的合并前的扩展记录进行删除。
21.根据权利要求19所述的方法,其特征在于,所述方法还包括:
按照扩展记录的前缀范围将每个扩展记录进行排序;
所述将所述被删除的对象对应的扩展记录与其他扩展记录进行合并,包括:
在与所述被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与所述被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;
将所述被删除的对象对应的扩展记录与确定的扩展记录进行合并。
22.根据权利要求15所述的方法,其特征在于,所述方法还包括:
确定所述第一级目录包含的目录的个数及所述第一级目录包含的文件的个数;
根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录。
23.根据权利要求22所述的方法,其特征在于,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数之和小于所述第一阈值,则根据所述第一级目录包含的目录所对应的扩展记录和所述第一级目录包含的文件所对应的扩展记录设置查找列表,所述查找列表包括所述第一级目录包含的目录的名称和地址标识,以及所述第一级目录包含的文件的名称和地址标识;
删除所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引,并根据所述查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述查找列表。
24.根据权利要求23所述的方法,其特征在于,所述查找列表还包括所述第一级目录包含的目录的主记录的键值。
25.根据权利要求23所述的方法,其特征在于,所述方法还包括:
获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
在所述第一级目录的主记录包括的查找列表所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象。
26.根据权利要求22所述的方法,其特征在于,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数大于等于第三阈值,则根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引,并根据所述目录查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述目录查找列表。
27.根据权利要求22所述的方法,其特征在于,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数大于等于第二阈值且所述第一级目录包含的文件的个数小于第三阈值,则根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除所述第一级目录的主记录所包括的所述第一级目录包含的文件所对应的扩展记录的索引,并根据所述文件查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述文件查找列表。
28.根据权利要求22所述的方法,其特征在于,所述根据所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录,包括:
如果所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数小于第三阈值,则根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引,并根据所述目录查找列表和所述文件查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述目录查找列表和所述文件查找列表。
29.根据权利要求26或28所述的方法,其特征在于,所述目录查找列表还包括所述第一级目录包含的目录的主记录的键值。
30.根据权利要求26至28任一权利要求所述的方法,其特征在于,所述方法还包括:
获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
如果所述待查找对象为目录,则根据所述待查找对象的名称在所述第一级目录的主记录包括的目录查找列表所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象;
如果所述待查找对象为文件,则根据所述待查找对象的名称在所述第一级目录的主记录包括的文件查找列表所包括的名称中查找与所述待查找对象的名称相同的名称,并根据查找到的名称所对应的地址标识获取所述待查找对象。
31.一种查找对象的装置,其特征在于,所述装置包括:
第一获取模块,用于获取待查找对象的名称,所述待查找对象为目录或文件;
第二获取模块,用于获取预先设置的所述待查找对象所在的第一级目录的主记录,所述第一级目录的主记录包括多个扩展记录的索引,每个扩展记录的索引包括对应的扩展记录的标识和前缀范围;
第一确定模块,用于根据所述第一获取模块获取到的待查找对象的名称确定所述待查找对象对应的前缀范围;
第二确定模块,用于在所述第一确定模块确定的第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引;
第三获取模块,用于根据所述第二确定模块确定的扩展记录的索引所包括的扩展记录的标识获取所述待查找对象对应的扩展记录;
第四获取模块,用于根据所述第三获取模块获取到的待查找对象对应的扩展记录获取所述待查找对象;
其中,每个扩展记录包括所述待查找对象所在的第一级目录包含的至少一个对象的名称和地址标识,所述对象为目录或文件。
32.根据权利要求31所述的装置,其特征在于,所述装置还包括:
第五获取模块,用于获取所述待查找对象所在每级目录的名称;
所述第二获取模块,用于根据所述第五获取模块获取到的待查找对象所在每级目录的名称获取预先设置的所述待查找对象所在的第一级目录的主记录。
33.根据权利要求32所述的装置,其特征在于,所述第二获取模块,包括:
第一获取单元,用于根据所述待查找对象所在顶级目录的名称获取预先设置的所述顶级目录的主记录;
第一确定单元,用于根据所述顶级目录的下一级目录的名称确定所述顶级目录的下一级目录对应的前缀范围;
第二确定单元,用于在所述第一获取单元获取到的顶级目录的主记录中确定包括所述第一确定单元确定的顶级目录的下一级目录对应的前缀范围的扩展记录的索引;
第二获取单元,用于根据所述第二确定单元确定的扩展记录的索引所包括的扩展记录的标识获取所述顶级目录的下一级目录对应的扩展记录;
第三获取单元,用于根据所述第二获取单元获取到的顶级目录的下一级目录对应的扩展记录获取所述顶级目录的下一级目录的主记录;
处理单元,用于按照获取所述顶级目录的下一级目录的主记录的方式继续获取其他级目录的主记录,直至获取到预先设置的所述待查找对象所在的第一级目录的主记录。
34.根据权利要求33所述的装置,其特征在于,所述顶级目录的下一级目录对应的扩展记录中还包括所述顶级目录的下一级目录的主记录的键值,所述第三获取单元,用于在所述顶级目录的下一级目录对应的扩展记录中查找与所述顶级目录的下一级目录的名称相对应的主记录的键值,并根据查找到的主记录的键值获取所述顶目录的下一级目录的主记录。
35.根据权利要求31所述的装置,其特征在于,所述第四获取模块,包括:
查找单元,用于在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象的名称相同的名称;
获取单元,用于根据所述查找单元查找到的名称所对应的地址标识获取所述待查找对象。
36.根据权利要求31所述的装置,其特征在于,所述装置还包括:
第一排序模块,用于将所述第一级目录的主记录所包括的多个扩展记录的索引按照所述多个扩展记录的前缀范围进行排序;
所述第二确定模块,用于按照二分法在所述第一级目录的主记录中确定包括所述待查找对象对应的前缀范围的扩展记录的索引。
37.根据权利要求31至36中任一权利要求所述的装置,其特征在于,所述装置还包括:
第一设置模块,用于根据所述第一级目录包含的对象设置多个扩展记录;
第三确定模块,用于确定所述第一设置模块设置的每个扩展记录的标识和前缀范围;
第一生成模块,用于根据所述第三确定模块确定的每个扩展记录的标识和前缀范围生成每个扩展记录的索引;
第二设置模块,用于设置所述第一级目录的主记录,所述第一级目录的主记录包括所述第一生成模块生成的多个扩展记录的索引。
38.根据权利要求37所述的装置,其特征在于,所述装置还包括:
第四确定模块,用于确定所述第一级目录包含的对象的个数;
如果所述第四确定模块确定的第一级目录包含的对象的个数达到第一阈值,则执行所述第一设置模块。
39.根据权利要求37所述的装置,其特征在于,所述第一设置模块,包括:
划分单元,用于将所述第一级目录包含的对象划分为多个组,每组至少包括一个对象;
设置单元,用于根据所述划分单元划分的每组包括的对象的名称和地址标识设置每组对应的扩展记录,得到多个扩展记录,每个扩展记录包括对应组所包括的对象的名称和地址标识。
40.根据权利要求39所述的装置,其特征在于,所述第三确定模块,用于为每个扩展记录分配对应的标识,并根据每个扩展记录所包括的对象的名称确定每个扩展记录的前缀范围。
41.根据权利要求39所述的装置,其特征在于,如果所述第一级目录包含的对象中有至少一个对象为目录,所述装置还包括:
第三设置模块,用于设置所述至少一个对象的主记录的键值;
第四设置模块,用于在包括所述至少一个对象的名称的扩展记录中设置所述第三设置模块设置的至少一个对象的主记录的键值。
42.根据权利要求41所述的装置,其特征在于,所述第三设置模块,用于生成所述至少一个对象的通用唯一识别码UUID,并根据所述至少一个对象的UUID设置所述至少一个对象的主记录的键值。
43.根据权利要求39所述的装置,其特征在于,所述第一设置模块的设置单元,用于将每组包括的对象的名称进行排序,根据排序后的对象的名称和地址标识设置每组对应的扩展记录;
所述第四获取模块的查找单元,用于按照二分法在所述待查找对象对应的扩展记录所包括的名称中查找与所述待查找对象名称相同的名称。
44.根据权利要求39所述的装置,其特征在于,所述第一设置模块的划分单元,用于将所述第一级目录包括的目录划分为至少一个组,并将所述第一级目录包括的文件划分为至少一个组;
所述第一设置模块的设置单元根据每组包括的对象的名称和地址标识设置每组对应的扩展记录之后,将包括目录的名称和地址标识的扩展记录作为目录扩展记录,并将包括文件的名称和地址标识的扩展记录作为文件扩展记录;
所述第二确定模块,用于在所述待查找对象为目录时,在所述第一级目录的主记录包括的目录扩展记录的索引中确定包括所述待查找对象对应的前缀范围的目录扩展记录;在所述待查找对象为文件时,在所述第一级目录的主记录包括的文件扩展记录的索引中确定包括所述待查找对象对应的前缀范围的文件扩展记录。
45.根据权利要求39至44中任一权利要求所述的装置,其特征在于,所述装置还包括:
新增模块,用于在所述第一级目录中新增至少一个对象时,根据新增的对象的名称确定所述新增的对象对应的扩展记录,并将所述新增的对象的名称和地址标识添加到所述新增的对象对应的扩展记录;
第一删除模块,用于在所述第一级目录中至少一个对象被删除时,根据被删除的对象的名称确定所述被删除的对象对应的扩展记录,并将所述被删除的对象的名称和地址标识从所述被删除的对象对应的扩展记录中删除。
46.根据权利要求45所述的装置,其特征在于,所述装置还包括:
第五确定模块,用于在所述新增的对象对应的扩展记录中确定是否包括与新增的对象的名称相同的名称;
如果所述第五确定模块确定的所述新增的对象对应的扩展记录中不包括与新增的对象的名称相同的名称,则执行所述新增模块。
47.根据权利要求45所述的装置,其特征在于,所述装置还包括:
拆分模块,用于在所述新增的对象对应的扩展记录所包括的对象的名称的个数达到拆分阈值时,将所述新增的对象对应的扩展记录拆分为预设个数的扩展记录;
第六确定模块,用于确定所述拆分模块拆分后得到的每个拆分后的扩展记录的标识和前缀范围;
第二生成模块,用于根据所述第六确定模块确定的每个拆分后的扩展记录的标识和前缀范围生成每个拆分后的扩展记录的索引;
第一添加模块,用于将所述第二生成模块生成的每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中;
第二删除模块,用于在所述第一级目录的主记录中删除所述新增的对象对应的拆分前的扩展记录的索引。
48.根据权利要求47所述的装置,其特征在于,所述装置还包括:
第三删除模块,用于在所述第一添加模块将所述第二生成模块生成的每个拆分后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述新增的对象对应的拆分前的扩展记录进行删除。
49.根据权利要求45所述的装置,其特征在于,所述装置还包括:
合并模块,用于在所述被删除的对象对应的扩展记录所包括的对象的名称的个数小于合并阈值时,将所述被删除的对象对应的扩展记录与其他扩展记录进行合并;
第七确定模块,用于确定所述合并模块合并后的扩展记录的标识和前缀范围;
第三生成模块,用于根据所述合并模块合并后的扩展记录的标识和前缀范围生成合并后的扩展记录的索引;
第二添加模块,用于将所述第三生成模块生成的合并后的扩展记录的索引添加到所述第一级目录的主记录中;
第四删除模块,用于在所述第一级目录的主记录中删除所述被删除的对象对应的合并前的扩展记录的索引。
50.根据权利要求49所述的装置,其特征在于,所述装置还包括:
第五删除模块,用于在所述第二添加模块将所述第三生成模块生成的合并后的扩展记录的索引添加到所述第一级目录的主记录中之后,将所述被删除的对象对应的合并前的扩展记录进行删除。
51.根据权利要求49所述的装置,其特征在于,所述装置还包括:
第二排序模块,用于按照扩展记录的前缀范围将每个扩展记录进行排序;
所述合并模块,用于在与所述被删除的对象对应的扩展记录相邻的扩展记录中确定包括的对象的名称的个数与所述被删除的对象对应的扩展记录所包括的对象的名称的个数之和小于拆分阈值的扩展记录;将所述被删除的对象对应的扩展记录与确定的扩展记录进行合并。
52.根据权利要求45所述的装置,其特征在于,所述装置还包括:
第八确定模块,用于确定所述第一级目录包含的目录的个数及所述第一级目录包含的文件的个数;
第五设置模块,用于根据所述第八确定模块确定的第一级目录包含的目录的个数和所述第一级目录包含的文件的个数重新设置所述第一级目录的主记录。
53.根据权利要求52所述的装置,其特征在于,所述第五设置模块,包括:
第一设置单元,用于在所述第一级目录包含的目录的个数和所述第一级目录包含的文件的个数之和小于所述第一阈值时,根据所述第一级目录包含的目录所对应的扩展记录和所述第一级目录包含的文件所对应的扩展记录设置查找列表,所述查找列表包括所述第一级目录包含的目录的名称和地址标识,以及所述第一级目录包含的文件的名称和地址标识;
第一删除单元,用于删除所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引;
第二设置单元,用于根据所述查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述查找列表。
54.根据权利要求53所述的装置,其特征在于,所述第一设置单元设置的查找列表还包括所述第一级目录包含的目录的主记录的键值。
55.根据权利要求53所述的装置,其特征在于,所述装置还包括:
第六获取模块,用于获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
第一查找模块,用于在所述第一级目录的主记录包括的查找列表所包括的名称中查找与所述待查找对象的名称相同的名称;
第七获取模块,用于根据查找到的名称所对应的地址标识获取所述待查找对象。
56.根据权利要求52所述的装置,其特征在于,所述第五设置模块,包括:
第三设置单元,用于在所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数大于等于第三阈值时,根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录所包括的目录的名称和地址标识;
第二删除单元,用于删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引;
第四设置单元,用于根据所述第三设置模块设置的目录查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述目录查找列表。
57.根据权利要求52所述的装置,其特征在于,所述第五设置模块,包括:
第五设置单元,用于在所述第一级目录包含的目录的个数大于等于第二阈值且所述第一级目录包含的文件的个数小于第三阈值时,根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
第三删除单元,用于删除所述第一级目录的主记录所包括的所述第一级目录包含的文件所对应的扩展记录的索引;
第六设置单元,用于根据所述第五设置单元文件查找列表设置所述第一级目录的主记录,所述第一级目录的主记录包括所述文件查找列表。
58.根据权利要求52所述的装置,其特征在于,所述第五设置模块,包括:
第七设置单元,用于在所述第一级目录包含的目录的个数小于第二阈值且所述第一级目录包含的文件的个数小于第三阈值时,根据所述第一级目录包含的目录所对应的扩展记录设置目录查找列表,并根据所述第一级目录包含的文件所对应的扩展记录设置文件查找列表,所述目录查找列表包括所述第一级目录包含的目录所对应的扩展记录包括的目录的名称和地址标识,所述文件查找列表包括所述第一级目录包含的文件所对应的扩展记录所包括的文件的名称和地址标识;
第四删除单元,用于删除所述第一级目录的主记录所包括的所述第一级目录包含的目录所对应的扩展记录的索引和所述第一级目录包含的文件所对应的扩展记录的索引;
第八设置单元,用于根据所述第七设置单元设置的目录查找列表和文件查找列表重新设置所述第一级目录的主记录,所述第一级目录的主记录中包括所述目录查找列表和所述文件查找列表。
59.根据权利要求56或58任一权利要求所述的装置,其特征在于,所述第三设置单元或所述第七设置单元设置的目录查找列表还包括所述第一级目录包含的目录的主记录的键值。
60.根据权利要求56至58任一权利要求所述的装置,其特征在于,所述装置,还包括:
第八获取模块,用于获取其他待查找对象的名称,并获取所述其他待查找对象所在的第一级目录的主记录;
第二查找模块,用于在所述待查找对象为目录时,根据所述待查找对象的名称在所述第一级目录的主记录包括的目录查找列表所包括的名称中查找与所述待查找对象的名称相同的名称;
第九获取模块,用于根据所述第二查找模块查找到的名称所对应的地址标识获取所述待查找对象;
第三查找模块,用于在所述待查找对象为文件时,根据所述待查找对象的名称在所述第一级目录的主记录包括的文件查找列表所包括的名称中查找与所述待查找对象的名称相同的名称;
第十获取模块,用于根据所述第三查找模块查找到的名称所对应的地址标识获取所述待查找对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310232729.7A CN104239316B (zh) | 2013-06-13 | 2013-06-13 | 查找对象的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310232729.7A CN104239316B (zh) | 2013-06-13 | 2013-06-13 | 查找对象的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239316A true CN104239316A (zh) | 2014-12-24 |
CN104239316B CN104239316B (zh) | 2018-09-07 |
Family
ID=52227406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310232729.7A Active CN104239316B (zh) | 2013-06-13 | 2013-06-13 | 查找对象的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239316B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424224A (zh) * | 2013-08-26 | 2015-03-18 | 深圳市腾讯计算机***有限公司 | 一种文件索引存储方法及装置 |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
CN107291943A (zh) * | 2017-07-11 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种图片查找方法及装置 |
CN107491923A (zh) * | 2017-09-06 | 2017-12-19 | 叶进蓉 | 基于智能终端的快递揽件***及方法 |
CN110097411A (zh) * | 2018-01-31 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 一种对象列表生成方法、询价单列表生成方法及装置 |
CN111723050A (zh) * | 2019-03-22 | 2020-09-29 | 伊姆西Ip控股有限责任公司 | 用于文件管理的方法、电子设备和计算机程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719141A (zh) * | 2009-12-24 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和*** |
CN102929875A (zh) * | 2011-08-08 | 2013-02-13 | 联想(北京)有限公司 | 一种查找文件方法、装置及电子设备 |
CN103064906A (zh) * | 2012-12-18 | 2013-04-24 | 华为技术有限公司 | 文件管理方法及装置 |
CN103246718A (zh) * | 2013-04-27 | 2013-08-14 | 华为技术有限公司 | 文件访问方法、装置和设备 |
-
2013
- 2013-06-13 CN CN201310232729.7A patent/CN104239316B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719141A (zh) * | 2009-12-24 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和*** |
CN102929875A (zh) * | 2011-08-08 | 2013-02-13 | 联想(北京)有限公司 | 一种查找文件方法、装置及电子设备 |
CN103064906A (zh) * | 2012-12-18 | 2013-04-24 | 华为技术有限公司 | 文件管理方法及装置 |
CN103246718A (zh) * | 2013-04-27 | 2013-08-14 | 华为技术有限公司 | 文件访问方法、装置和设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424224A (zh) * | 2013-08-26 | 2015-03-18 | 深圳市腾讯计算机***有限公司 | 一种文件索引存储方法及装置 |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
US11281632B2 (en) | 2016-07-07 | 2022-03-22 | Tencent Technology (Shenzhen) Company Limited | Object information processing method and apparatus, and storage medium |
CN107291943A (zh) * | 2017-07-11 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种图片查找方法及装置 |
CN107491923A (zh) * | 2017-09-06 | 2017-12-19 | 叶进蓉 | 基于智能终端的快递揽件***及方法 |
CN110097411A (zh) * | 2018-01-31 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 一种对象列表生成方法、询价单列表生成方法及装置 |
CN111723050A (zh) * | 2019-03-22 | 2020-09-29 | 伊姆西Ip控股有限责任公司 | 用于文件管理的方法、电子设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN104239316B (zh) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104462119A (zh) | 数据迁移方法及装置 | |
CN104111927A (zh) | 信息分类的方法、设备和*** | |
CN104142868A (zh) | 建立连接的方法及装置 | |
CN104239316A (zh) | 查找对象的方法及装置 | |
CN104572430A (zh) | 一种终端应用界面的测试方法、装置和*** | |
CN104636047A (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN104516888A (zh) | 多维数据的权限查询方法及装置 | |
CN105429775A (zh) | 一种上报日志的方法及装置 | |
CN104298558A (zh) | 信息处理方法和装置 | |
CN104516887A (zh) | 一种网页数据搜索方法、装置和*** | |
CN105094809A (zh) | 组合图片布局修改方法、装置以及终端设备 | |
CN104252341A (zh) | 应用程序的换肤方法、装置及应用程序的客户端设备 | |
CN103455583B (zh) | 虚拟目录建立方法、装置及电子设备 | |
CN104134043B (zh) | 对内容进行隐藏、解隐藏的方法、装置及终端 | |
CN103945241A (zh) | 一种流媒体数据的统计方法、***及相关装置 | |
CN105512150A (zh) | 一种信息搜索方法及装置 | |
CN104063400A (zh) | 数据搜索方法和装置 | |
CN104699501A (zh) | 一种运行应用程序的方法及装置 | |
CN105550316A (zh) | 音频列表的推送方法及装置 | |
CN104731806A (zh) | 一种在社交网络中快速查找用户信息的方法及终端 | |
CN104142994A (zh) | 一种数据列表获取的方法、终端及*** | |
CN103631592A (zh) | 一种显示资源的配置、调用方法、装置及设备 | |
CN104636455A (zh) | 应用程序映射信息的获取方法及装置 | |
CN104965825A (zh) | 一种数据处理的方法及终端 | |
CN105022621A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |