用 Kooder,为你的自建 GitLab 设置一个全能搜索引擎
一个企业里往往有大量的项目,每个项目都包含很多的代码,经过日积月累,不同的开发人员不断地对代码修改完善,代码和代码仓库的数量也随之增长。
当想要统一排查代码是否包含某类敏感信息,或检查是否使用了某些不安全的方法时,就需要开发人员各自手工排查自己负责的代码,费时费力。
因此,企业全库的代码搜索就变得非常重要。尤其对于将代码通过 GitLab 部署在本地服务器的企业,由于缺少了云端托管平台自身集成的搜索引擎,想要在本地进行全局的代码搜索就变得异常困难。
为解决该问题,Gitee 团队在近日开源了代码搜索工具 Kooder,Kooder 的目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供自动的源码、仓库和 Issue 的搜索服务。
仓库地址:
https://gitee.com/koode/kooder
Kooder 架构
Kooder 服务包含两个模块,分别是 gateway
和 indexer
(默认配置下 indexer
被集成到 gateway
中)。
其中 gateway
用来接受来自 HTTP
的索引任务, 对任务进行检查后存放到队列中;同时 gateway
还接受搜索的请求,并返回搜索结果给客户端。
而 indexer
进程负责监控队列中的索引任务, 并将这些要新增、删除和修改索引的任务更新到索引库中。
数据流图
搜索界面效果
在搜索框中输入你想要搜索的函数、变量或方法名,即可在全仓库内搜索它们,并为搜索结果进行了语言的归类,查看更方便。
主要技术栈
Kooder 不依赖于 Java 容器服务,是一个独立的应用程序,它的主要技术栈有:
lucene jgit vert.x jcseg velocity jackson gitlab4j Spectre.css
进行贡献
Kooder 遵循 Apache-2.0
开源协议,欢迎开发者们踊跃提交 Issue 和 PR。
Kooder 刚刚在前两天完成了 1.0 Alpha2 版本的更新,更多详细信息请前往代码仓库查看,别忘了给它一个 Star 哦: