Git版本库全文检索系统的设计与实现
2016-09-20高毅任洪敏
现代计算机 2016年21期
高毅,任洪敏
(上海海事大学信息工程学院,上海 201306)
Git版本库全文检索系统的设计与实现
高毅,任洪敏
(上海海事大学信息工程学院,上海 201306)
随着Git版本控制系统应用的日益广泛,Git版本库中的文档资料也越来越多。基于Lucene的Git版本库搜索引擎针对Git版本库中的文件建立索引并进行搜索。该搜索系统通过Git的钩子机制异步地建立索引,在检索时使用了基于J2EE的架构。首先对Lucene、jGit等相关工具包进行研究,然后对索引模块、检索模块等进行设计,最后编程实现和测试分析。系统实现的Git版本库中文件的全文检索,为Git版本库提供Web化的检索方式,同时也是对Lucene应用领域的探索。
Git;Lucene;全文检索;搜索引擎
0 引言
Git是Linus开发的一个用于Linux内核代码管理的分布式版本控制工具[1]。基于Git的客户端管理工具如Git bash能用命令的形式对版本库中文件进行查找,但这种方式使用不方便、也不直观。为版本库提供一种Web化的检索方式,将提升用户检索的体验。
针对版本库中文件数据的特征,全文检索技术是管理这些数据的有效方式,它能根据文件的内容进行处理和定位。Lucene是实现全文检索的工具包,为实现Git版本库的检索提供了可能[2]。
本文通过研究Lucene在各个领域的应用,结合开源框架Spring和Spring MVC[3],设计了Java EE架构的全文检索系统。改进了Lucene的分词器,更好地支持中文分词;使用开源的文本抽取工具Tika为文本内容抽取提供了统一的编程接口;将Git钩子和Java异步编程结合,实现了异步索引;设计并实现了针对Git版本库中的海量数据的全文检索系统。……
登录APP查看全文
