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創建:
獵犬維持: