Hound是一个非常快速的源代码搜索引擎。核心基于Russ Cox的本文(和代码):与Trigram索引匹配的正则表达式。猎犬本身是一个静态的反应前端,可以与后端进行对话。后端为每个存储库保持最新索引,并通过最小的API回答搜索。在这里,它正在行动:

安装GO(最低版本:1.16)和NPM
克隆存储库并运行。
git clone https://github.com/hound-search/hound.git
cd hound
make
可以在.build/ bin/ Directory中找到产生的二进制文件( hound , houndd )。
{
"dbpath" : " db " ,
"repos" : {
"Hound" : {
"url" : " https://github.com/hound-search/hound.git " ,
"vcs-config" : {
"ref" : " main "
}
}
}
}可以在此处找到可用配置选项的完整列表。
houndd与您的config.json一起运行猎犬服务器。您应该看到类似的输出: 2015/03/13 09:07:42 Searcher started for statsd
2015/03/13 09:07:42 Searcher started for Hound
2015/03/13 09:07:42 All indexes built!
2015/03/13 09:07:42 running server at http://localhost:6080
如果没有它,请安装Docker。我们至少需要Docker >= 1.14 。
创建一个config.json文件并使用它列出您的存储库。请查看我们的示例config.json,以查看如何设置各种类型的存储库。例如,我们可以使用default-config.json中的配置来配置猎犬以搜索自己的源代码。
docker run -d -p 6080:6080 --name hound -v $(pwd):/data ghcr.io/hound-search/hound:latest
您应该能够像往常一样导航到http:// localhost:6080/。
git clone https://github.com/hound-search/hound.git
cd hound
docker build . --tag=hound
docker create -p 6080:6080 --name hound -v $(pwd):/data hound
docker start hound
docker stop hound
没有特殊的旗帜可以在生产中运行。您可以使用--addr=:6880标志来控制服务器绑定的端口。当前,Hound不支持TLS,因为大多数用户只是在Apache或Nginx后面奔跑。但是,我们愿意贡献增加TLS支持。
过去,我们使用过许多类似的工具,并且大多数工具要么太慢,要么难以配置,要么需要太多的软件即可安装。这带给我们...
是的,就是这样。您可以通过apache/nginx/etc。代理GO服务,但这不是必需的。
目前仅在MacOS和CentOS上测试Hound,但应在任何 *NIX系统上使用。不支持Windows上的Hound,但我们听到了它的编译并运行良好(尽管它有助于将您的数据文件夹从Windows搜索索引器中排除)。
Hound支持以下版本控制系统:
"vcs" : "hg""vcs" : "svn""vcs" : "bzr""vcs" : "local"在配置中有关如何使用每个VCS的示例,请参见Config-Example.json。
有几种方法可以使猎犬索引私人存储库:
local伪VCS驱动程序。这使您可以索引本地目录。您可以设置"watch-changes" : true ,可以计算目录中所有文件的递归哈希,并自动重新索引。file://协议。这使您可以为存储库的本地克隆索引。不利的一面是,将存储库保持最新的投票将不起作用。 (这也不适用于不具有支持的存储库类型的本地文件夹。)如果您使用的是Docker,则必须将卷安装到存储库中(例如, -v $(pwd)/src:/src ),并在配置中使用repo的相对路径。"url" : "[email protected]:foo/bar.git" 。只要您在猎犬正在运行的盒子上设置了SSH键,此功能就可以了。 默认情况下,Hound将每30秒钟更新中的url投票。您可以通过在配置中的每个存储库中设置ms-between-poll密钥来覆盖此值。如果您要索引大量的存储库,则可能也有兴趣调整max-concurrent-indexers属性。您可以在示例配置中查看这些工作方式。
目前,以下编辑器具有支持Hound的插件:
git clone https://github.com/hound-search/hound.git
cd hound
make
猎犬可执行文件将在.build/bin中提供。
猎犬中的每个软件包中的测试数量越来越多。在上传您的拉请求之前,请确保这些通过。您可以使用以下命令运行测试。要运行整个测试套件,请使用:
make test
如果您只想运行JavaScript测试套件,请使用:
npm test
假定在_test.go中结束的任何GO文件都是测试文件。同样,任何以.test.js结尾的JavaScript文件都由我们的测试跑者Jest自动运行。测试应在其涵盖的文件旁边进行。请查看Jest的文档,以获取有关编写Jest测试的更多详细信息,并查看GO的测试文档,以获取有关测试GO代码的更多详细信息。
您需要安装Node.js >= 12 ,并通过npm install jest安装jest安装Jest Jest来运行JS测试。
Hound包括由多个文件(HTML,CSS,JavaScript等)组成的Web UI。编译UI更改使用:
make ui
为了使开发更容易,有一个标志可以从文件系统中读取文件(允许备受喜爱的编辑/刷新周期)。
首先,您应该确保通过运行所需的所有依赖项:
make dev
然后使用-DEV选项运行Hound Server:
.build/bin/houndd --dev
在Etsy创建:
猎犬维持: