国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:刘志伟,邢永旭,于澔,李涛,张晓东
单位:刘志伟,百度(中国)有限公司, 上海 20121011,邢永旭,百度(中国)有限公司, 上海 20121002,于澔,百度(中国)有限公司, 上海 20121003,李涛,百度在线网络技术(北京)有限公司, 北京 10019304,张晓东,西安交通大学 计算机科学与技术系, 陕西 西安 71004905
关键词:代码搜索;索引;排序;海量代码
基金:国家重点研发计划(2018YFB1003900)
在大型IT企业中,尤其像Google或者百度,代码搜索已是软件开发过程中不可或缺且频繁的活动,其通过借鉴或复用已有代码,加速开发过程的速度.多年以来,已有大量的研究人员关注代码搜索,且设计出很多优秀的工具.但是已有的研究和工具主要是在小规模或者编程语言单一的代码数据集上,没有从企业实际搜索需求出发,且对用户的查询输入也有所限制,尚缺少一套针对企业级海量代码的检索与管理技术方案.提出了一套企业级海量数据代码搜索引擎的方案和系统实现,面向开发过程中用户最直接的需求,通过离线分析与在线分析,完成对海量代码库的索引构建与检索.其中,离线分析负责代码相关数据的获取与分析、构建索引集群.在线过程负责变换用户的query、对搜索的结果进行高级排序、生成摘要.本系统部署在百度代码库上,为数十TB级的Git代码库构建了索引,平均一次检索时间在1s之内.在百度推出应用以来,访问量逐步增加,现每周平均用户有数千人,每周查询平均有数万次,广受百度工程师好评.
来源:2019年第5期
《软件学报》期刊编辑部