Hound는 매우 빠른 소스 코드 검색 엔진입니다. 핵심은 Russ Cox : Trigram Index와 일치하는 Russ Cox 의이 기사 (및 코드)를 기반으로합니다. 하운드 자체는 Go Backend와 대화하는 정적 반응 프론트 엔드입니다. 백엔드는 각 저장소에 대한 최신 인덱스를 유지하고 최소 API를 통해 검색을 답변합니다. 여기는 작동 중입니다.

GO (최소 버전 : 1.16) 및 NPM을 설치하십시오
저장소를 복제하고 만들기.
git clone https://github.com/hound-search/hound.git
cd hound
make
결과 바이너리 ( hound , houndd )는 .build/ bin/ directory에서 찾을 수 있습니다.
{
"dbpath" : " db " ,
"repos" : {
"Hound" : {
"url" : " https://github.com/hound-search/hound.git " ,
"vcs-config" : {
"ref" : " main "
}
}
}
}사용 가능한 구성 옵션의 전체 목록은 여기에서 찾을 수 있습니다.
config.json 과 동일한 디렉토리에서 houndd 로 Hound 서버를 실행하십시오. 다음과 유사한 출력이 표시됩니다. 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를 설치하십시오. 우리는 적어도 Docker >= 1.14 필요합니다.
config.json 파일을 만들고이를 사용하여 리포지토리를 나열하십시오. 다양한 유형의 리포지토리를 설정하는 방법을 확인하려면 example-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는 대부분의 사용자가 단순히 Apache 또는 Nginx 뒤에서 Hound를 실행하기 때문에 TLS를 지원하지 않습니다. 그러나 우리는 TLS 지원을 추가하기 위해 기부 할 수 있습니다.
우리는 과거에 많은 유사한 도구를 사용했으며 대부분은 너무 느리거나 구성하기가 너무 어렵거나 너무 많은 소프트웨어를 설치해야합니다. 그것은 우리를 ... ...
그래, 그게 다야. Apache/Nginx/등을 통해 GO 서비스에 대한 요청을 프록시 할 수 있지만 필요하지 않습니다.
현재 Hound는 MacOS 및 CentOS에서만 테스트되었지만 모든 *NIX 시스템에서 작동해야합니다. Windows의 Hound는 지원되지 않지만 컴파일하고 잘 실행된다고 들었습니다 (Windows 검색 인덱서에서 데이터 폴더를 제외하는 데 도움이되지만).
하운드는 다음 버전 제어 시스템을 지원합니다.
"vcs" : "hg" 사용하십시오"vcs" : "svn" 사용하십시오"vcs" : "bzr" 사용하십시오"vcs" : "local" 사용하십시오각 VC를 사용하는 방법의 예는 Config-Aexample.json을 참조하십시오.
사냥개가 개인 리포지토리를 색인화하는 몇 가지 방법이 있습니다.
local 의사 VCS 드라이버를 사용하십시오. 이를 통해 로컬 디렉토리를 색인 할 수 있습니다. 디렉토리의 모든 파일의 재귀 해시를 계산하고 자동으로 다시 표시하는 "watch-changes" : true 설정할 수 있습니다.file:// 프로토콜. 이를 통해 저장소의 로컬 클론을 색인 할 수 있습니다. 여기서 단점은 Repo를 최신 상태로 유지하기위한 투표가 작동하지 않는다는 것입니다. (이것은 지원되는 저장소 유형이 아닌 로컬 폴더에서도 작동하지 않습니다.) Docker를 사용하는 경우 리포지토리 (예 : -v $(pwd)/src:/src )에 볼륨을 장착하고 구성에서 Repo의 상대 경로를 사용해야합니다."url" : "[email protected]:foo/bar.git" . 하운드가 실행중인 상자에 SSH 키가 설정되어있는 한 작동합니다. 기본적으로 하운드는 30 초마다 업데이트 구성에 대한 URL을 폴링합니다. 구성에서 ms-between-poll 키를 리포 기준으로 설정 하여이 값을 무시할 수 있습니다. 많은 수의 리포지토리를 색인화하는 경우 max-concurrent-indexers 속성을 조정하는 데 관심이있을 수도 있습니다. 예제 구성에서 이러한 작동 방식을 볼 수 있습니다.
현재 다음 편집기에는 사냥개를 지원하는 플러그인이 있습니다.
git clone https://github.com/hound-search/hound.git
cd hound
make
하운드 실행 파일은 .build/bin 으로 제공됩니다.
하운드의 각 패키지에는 점점 더 많은 테스트가 있습니다. 풀 요청을 업로드하기 전에이 패스를 확인하십시오. 다음 명령으로 테스트를 실행할 수 있습니다. 전체 테스트 스위트를 실행하려면 사용하십시오.
make test
JavaScript Test Suite를 실행하려면 다음을 사용하십시오.
npm test
_test.go 에서 끝나는 모든 GO 파일은 테스트 파일로 가정됩니다. 마찬가지로 .test.js 로 끝나는 JavaScript 파일은 테스트 러너 인 Jest에 의해 자동으로 실행됩니다. 테스트는 다루는 파일 옆에 있어야합니다. Jest 테스트 작성에 대한 자세한 내용은 Jest의 문서를 확인하고 GO 테스트 문서 테스트 문서 테스트 GO 코드에 대한 자세한 내용을 확인하십시오.
Node.js >= 12 설치하고 JS 테스트를 실행하려면 jest 설치하여 npm install jest 해야합니다.
Hound에는 여러 파일 (HTML, CSS, JavaScript 등)으로 구성된 웹 UI가 포함되어 있습니다. UI 변경 사항을 컴파일하려면 사용 :
make ui
개발을보다 쉽게하기 위해 파일 시스템에서 파일을 읽을 수있는 플래그가 있습니다 (많이 사랑받는 편집/새로 고침 사이클 허용).
먼저 실행하여 필요한 모든 종속성을 설치해야합니다.
make dev
그런 다음 -dev 옵션으로 하운드 서버를 실행하십시오.
.build/bin/houndd --dev
Etsy에서 작성자 :
하운드는 다음과 같이 유지됩니다.