Kooder 是一个开源的代码搜索工具,目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供自动的源码、仓库和 Issue 的搜索服务。
Kooder 架构
Kooder 服务包含两个模块,分别是 gateway 和 indexer(默认配置下 indexer 被集成到 gateway 中)。 其中 gateway 用来接受来自 HTTP 的索引任务, 对任务进行检查后存放到队列中; 同时 gateway 还接受搜索的请求,并返回搜索结果给客户端。而 indexer 进程负责监控队列中的索引任务, 并将这些要新增、删除和修改索引的任务更新到索引库中。
模块说明
core 核心对象和公共类
gateway 用来接收来自 HTTP 的索引和搜索的请求
indexer 构建、更新和删除索引的服务
源码安装
1.依赖
openjdk >= 8
maven > 3
2.下载代码
$ git clone https://gitee.com/koode/kooder.git
$ cd kooder
运行前准备工作
配置文件: core/src/main/resources/kooder.properties
1.配置 HTTP 服务
http.url Kooder 的网址,该地址用于向 Git 服务注入 Webhook 的链接地址, 必须是 Git 服务可访问的地址,例如:http.url = http://:8080
http.port Kooder 运行的 HTTP 端口
2.配置 GitLab 服务地址
目前 Kooder 支持 Gitee、GitLab 和 Gitea ,其他服务正在开发中。
gitlab.url 访问 GitLab 的首页
gitlab.personal_access_token Gitlab 管理员账号 root 的 Personal Access Token
3.构建并运行
$ cd Kooder
$ mvn install
### 给执行脚本添加权限
$ chmod +x bin/*.sh
### 启动 gateway
$ bin/gateway.sh
### 浏览器访问 http://localhost:8080
Kooder代码搜索工具 更新日志:
v1.0 beta4
大幅提升代码搜索时语法高亮的性能,从而提升页面和接口性能至少 4~5 倍,搜索结果页面的响应时间降至 20ms 左右
修复了当某些源码文件太大时的异常
重写了分词器,支持超大源码文件,避免了堆栈溢出的异常
修复了使用 redis 做队列时的 json 反序列化的异常
修复了使用 gitea 的一个空指针异常
标签:
Kooder 代码搜索工具v1.0 beta4 源码链接:https://www.hycodes.cn/kfkj/1069.html
下载说明:本站部分资源供学习交流使用,如商业用途,请购正版。
上一篇:LCUI 图形界面开发库
下一篇:GoAdmin后台开发框架