一种代码搜索系统生成方法、代码搜索方法和搜索服务器技术方案

技术编号:31482405 阅读:28 留言:0更新日期:2021-12-18 12:16
本申请提供一种代码搜索系统生成方法、代码搜索方法和搜索服务器,涉及数据检索领域,提高了搜索服务器的存储资源的利用率。包括:根据目标分支的代码仓的相对路径和目录树信息,生成其分支目录。在未存代码文件时,从代码服务器下载第一分支的所有代码文件所属代码仓并读取其所有代码文件。在存储有代码文件时,从本地读取第二分支的代码文件中的第一代码文件,并从代码服务器读取除第一代码文件以外的第二代码文件并下载其所属的代码仓。根据分支的分支目录、所有代码文件及其存储地址,生成分支的分支索引。根据所有分支目录、所有分支索引以及所有代码仓,生成代码搜索系统。生成代码搜索系统。生成代码搜索系统。

【技术实现步骤摘要】
一种代码搜索系统生成方法、代码搜索方法和搜索服务器


[0001]本申请涉及数据检索领域,尤其涉及一种代码搜索系统生成方法、代码搜索方法和搜索服务器。

技术介绍

[0002]在开发某些大型网站或者某些操作系统(例如安卓
TM
系统)时,因为需要实现的功能非常多,所以这些大型网站或者操作系统的代码量非常大。以安卓系统为例,安卓系统本身具备有多个模块(例如启动模块、主页面模块、消息推送模块等),每个模块对应的代码量会很大。为了方便管理和调用,谷歌
TM
将安卓系统的所有代码文件按照模块的不同,划分至不同的代码仓,以供开发人员使用。为了方便开发和发布,实际中会针对某些需求/特性的代码文件建立一个分支,每个分支会对应有多个代码仓,后续用户在开发时便可以在该分支上方便的对不同代码仓中的代码文件进行修改或补充。
[0003]现有的代码搜索系统可以提供开发人员对目标代码文件进行搜索并查看的功能。在现有的代码搜索系统中,需要针对每个分支下载所有代码仓中对应该分支代码文件,而后建立对应每个分支的分支索引。每个分支的分支索引都本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种代码搜索系统生成方法,应用于搜索服务器,其特征在于,所述方法包括:所述搜索服务器从代码服务器获取目标代码中至少一个目标分支的代码仓的特征信息和目录树信息;所述特征信息包括:名称、相对路径、最新提交点和下载地址;所述目标分支的目标代码仓的最新提交点为所述目标分支在所述目标代码仓中提交代码文件的所有提交点中最新的一个;所述目标代码仓为所述目标分支的所有代码仓中的任一个;所述目录树信息至少包括所述目录树信息所属代码仓中的代码文件的特征参数;所述特征参数用于指示所述特征参数所属的代码文件;所述搜索服务器根据所述目标分支的代码仓的相对路径和目录树信息,生成所述目标分支的分支目录;所述分支目录至少包括所述目标分支包括的代码仓的相对路径,以及所述目标分支对应的代码仓中的代码文件的特征参数;在所述搜索服务器中未存储有所述目标代码的任一代码文件的情况下,所述搜索服务器根据第一分支的代码仓的名称和下载地址,从所述代码服务器下载所述第一分支的所有代码文件所属的代码仓,并读取所述第一分支的分支目录对应的所有代码文件;所述第一分支为所述至少一个目标分支中的任一个目标分支;所述搜索服务器根据所述第一分支的所有代码文件、所述第一分支的分支目录和所述第一分支的所有代码文件的存储地址,生成所述第一分支的分支索引;所述分支索引至少用于指示所述分支索引所属的分支对应的任意代码文件在所述分支索引对应的所述分支目录中的位置;在所述搜索服务器中存储有已建分支的所有代码文件所属的代码仓的情况下,所述搜索服务器从本地依次读取第二分支的分支目录对应的代码文件中的所有第一代码文件;所述已建分支为已生成有分支索引的目标分支;所述第二分支为所述至少一个目标分支中除所述已建分支以外的任一个目标分支;所述第一代码文件是所述已建分支的所有代码文件所属的代码仓中的代码文件;所述搜索服务器根据所述第二分支的分支目录对应的代码文件中除所述第一代码文件以外的所有第二代码文件的特征参数、所有所述第二代码文件所属代码仓的名称、所有所述第二代码文件所属代码仓的最新提交点和所有所述第二代码文件所属代码仓的下载地址,从所述代码服务器读取所有所述第二代码文件,并下载所有所述第二代码文件所属的代码仓;所述搜索服务器根据所述第二分支的分支目录、所述第二分支的所有代码文件和所述第二分支的所有代码文件的存储地址,生成所述第二分支的分支索引;所述搜索服务器根据所述至少一个目标分支的分支目录、所述至少一个目标分支的分支索引以及所述搜索服务器下载的对应所述至少一个目标分支的所有代码仓,生成所述代码搜索系统。2.根据权利要求1所述的方法,其特征在于,所述搜索服务器从代码服务器获取目标代码中至少一个目标分支的代码仓的特征信息和目录树信息,包括:所述搜索服务器从代码服务器获取所述至少一个分支的manifest文件和所述至少一个分支的代码仓的目录树信息;所述搜索服务器解析所述至少一个目标分支的manifest文件,以获取所述至少一个目标分支的代码仓的特征信息。
3.根据权利要求1或2所述的方法,其特征在于,所述搜索服务器根据第一分支的代码仓的名称和下载地址,从所述代码服务器下载所述第一分支的所有代码文件所属的代码仓,并读取所述第一分支的分支目录对应的所有代码文件,包括:所述搜索服务器从本地依次读取第一分支的分支目录对应的每个代码文件;所述第一分支为所述至少一个分支中的一个分支;在所述搜索服务器无法从本地读取到目标代码文件的情况下,所述搜索服务器根据所述目标代码文件的特征参数、所述目标代码文件所属代码仓的名称、所述目标代码文件所属代码仓的最新提交点和所述目标代码文件所属代码仓的下载地址,从所述代码服务器读取所述目标代码文件,并下载所述目标代码文件所属的代码仓至所述本地存储器;所述目标代码文件为所述第一分支的分支目录对应的所有代码文件中的任一个。4.根据权利要求1

3任一项所述的方法,其特征在于,所述搜索服务器根据所述第二分支的分支目录对应的代码文件中除所述第一代码文件以外的所有第二代码文件的特征参数、所有所述第二代码文件所属代码仓的名称、所有所述第二代码文件所属代码仓的最新提交点和所有所述第二代码文件所属代码仓的下载地址,从所述代码服务器读取所有所述第二代码文件,并下载所有所述第二代码文件所属的代码仓,包括:所述搜索服务器从本地依次读取所有所述第二代码文件;在所述搜索服务器无法从本地存储器中读取到第四代码文件的情况下,所述搜索服务器根据所述第四代码文件的特征参数、所述第四代码文件所属代码仓的名称、所述第四代码文件所属代码仓的最新提交点和所述第四代码文件所属代码仓的下载地址,从所述代码服务器读取所述第四代码文件,并下载所述第四代码文件所属的代码仓;所述第四代码文件为所有所述第二代码文件中的任一个。5.根据权利要求1

4任一项所述的方法,其特征在于,所述方法还包括:所述搜索服务器每隔预设时长从代码服务器获取对应所述目标分支的所有代码仓,并使用最新获取的对应所述目标分支的所有代码仓更新所述搜索服务器存储的对应所述目标分支的所有代码仓。6.根据权利要求1

5任一项所述的方法,其特征在于,所述生成所述代码搜索系统之后,所述方法还包括:所述搜索服务器响应于来自开发客户端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引和分支目录,利用所述搜索指令携带的关键词,从本地搜索与所述关键词匹配的第三代码文件;所述搜索服务器向所述开发客户端发送所述第三代码文件。7.根据权利要求6所述的方法,其特征在于,所述搜索服务器响应于来自开发客户端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引和分支目录,利用所述搜索指令携带的关键词,从本地搜索对应所述关键词的第三代码文件,包括:所述搜索服务器响应于来自开发客户端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引,确定与所述搜索指令携带的关键词匹配的第三代码文件在所述分支目录中的目标位置;所述搜索服务器利用所述分支目录和所述目标位置,从本地搜索所述第三代码文件。8.根据权利要求6或7所述的方法,其特征在于,所述搜索服务器响应于来自开发客户
端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引和分支目录,利用所述搜索指令携带的关键词,从本地搜索与所述关键词匹配的第三代码文件,包括:所述搜索服务器响应于来自开发客户端的搜索指令,在所述搜索指令携带的分支标记对应的分支为所述第二分支的情况下,若根据所述第二分支的分支索引和第二分支的分支目录,确定所述搜索指令携带的关键词对应的第三代码文件为第二代码仓中的代码文件,则从所述第二代码仓中获取所述第三代码文件;所述第二代码仓为所述已建分支的所有代码文件所属的代码仓中任一个代码仓。9.一种代码搜索方法,应用于搜索服务器,所述搜索服务器中设置有如权利要求1

8任一项所述的代码搜索系统生成方法生成的代码搜索系统;所述代码搜索方法包括:所述搜索服务器响应于来自开发客户端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引和分支目录,利用所述搜索指令携带的关键词,从本地搜索对应所述关键词的第三代码文件;所述搜索服务器向所述开发客户端发送所述第三代码文件。10.根据权利要求9所述的方法,其特征在于,所述搜索服务器响应于来自开发客户端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引和分支目录,利用所述搜索指令携带的关键词,从本地搜索与所述关键词匹配的第三代码文件,包括:所述搜索服务器响应于来自开发客户端的搜索指令,根据所述搜索指令携带的分支标记对应的分支的分支索引,确定与所述搜索指令携带的关键词匹配的第三代码文件在所述分支目录中的目标位置;所述搜索服务器利用所述分支目录和所述目标位置,从本地搜索所述第三代码文件。11.一种搜索服务器,其特征在于,包括:处理器;用于存储所述处理器可执行...

【专利技术属性】
技术研发人员:于亮张大欣
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1