Houndは非常に高速なソースコード検索エンジンです。コアは、Russ Coxのこの記事(およびコード)に基づいています。Trigramインデックスと一致する正規表現。ハウンド自体は、Go BackEndと話す静的Reactフロントエンドです。バックエンドは各リポジトリの最新のインデックスを保持し、最小限のAPIを介して検索に回答します。ここで動作しています:

GO(最小バージョンが必要:1.16)およびNPMをインストールします
リポジトリをクローンして実行します。
git clone https://github.com/hound-search/hound.git
cd hound
make
結果のバイナリ( hound 、 houndd )は、.build/ bin/ディレクトリにあります。
{
"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 >= 1.14必要です。
config.jsonファイルを作成し、それを使用してリポジトリをリストします。 example-config.jsonをチェックして、さまざまな種類のリポジトリをセットアップする方法を確認してください。たとえば、default-config.jsonにある構成を使用して、独自のソースコードを検索するようにHoundを構成できます。
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フラグを使用して、サーバーがバインドするポートを制御できます。現在、ほとんどのユーザーはApacheまたはNginxのいずれかの後ろでハウンドを実行するため、HoundはTLSをサポートしていません。ただし、TLSサポートを追加するための貢献を受け入れています。
過去に多くの同様のツールを使用してきましたが、それらのほとんどは遅すぎるか、構成するのが難すぎるか、インストールするにはあまりにも多くのソフトウェアが必要です。それは私たちに...
うん、それだけです。 apache/nginx/etc。を介してGOサービスにプロキシリクエストをプロキシできますが、それは必要ありません。
現在、HoundはMacosとCentosでのみテストされていますが、任意の *nixシステムで動作するはずです。 Hound On Windowsはサポートされていませんが、コンパイルと正常に実行されると聞きました(ただし、Windows Search Indencerからデータフォルダーを除外するのに役立ちます)。
Houndは次のバージョン制御システムをサポートしています。
"vcs" : "hg"構成に使用します"vcs" : "svn"を使用します"vcs" : "bzr"を使用します"vcs" : "local"を使用します各VCSの使用方法については、config-example.jsonを参照してください。
ハウンドにプライベートリポジトリのインデックスを作成する方法はいくつかあります。
local擬似VCSドライバーを使用します。これにより、ローカルディレクトリにインデックスを付けることができます。 "watch-changes" : trueできます。file:// Protocolを使用します。これにより、リポジトリのローカルクローンにインデックスを作成できます。ここでの欠点は、最新のリポジトリを維持するためのポーリングが機能しないことです。 (これは、サポートされているリポジトリタイプではないローカルフォルダーでも機能しません。)Dockerを使用している場合は、リポジトリ( -v $(pwd)/src:/src )にボリュームをマウントし、構成内のリポジトリに相対パスを使用する必要があります。"url" : "[email protected]:foo/bar.git"でsshスタイルのurlsを使用します。 Houndが実行されているボックスにSSHキーをセットアップしている限り、これは機能します。 デフォルトでは、ハウンドは30秒ごとに更新のために構成のURLを投票します。この値をオーバーライドすることで、 ms-between-pollキーを設定して構成ごとに設定できます。多数のリポジトリのインデックスを作成している場合は、 max-concurrent-indexersプロパティを微調整することにも関心があります。これらの動作が例でどのように機能するかを見ることができます。
現在、次の編集者にはハウンドをサポートするプラグインがあります。
git clone https://github.com/hound-search/hound.git
cd hound
make
Hound実行可能ファイルは.build/binで利用可能になります。
Houndの各パッケージには、テストが増えています。プルリクエストをアップロードする前に、これらのパスを確認してください。次のコマンドでテストを実行できます。テストスイート全体を実行するには、使用してください。
make test
JavaScriptテストスイートを実行したい場合は、以下を使用してください。
npm test
_test.goで終了するGOファイルは、テストファイルであると想定されます。同様に、 .test.jsで終了するJavaScriptファイルは、テストランナーであるJestによって自動的に実行されます。テストは、カバーするファイルの隣に住む必要があります。 JESTテストの作成の詳細については、Jestのドキュメントをご覧ください。TeTingGoコードの詳細については、Goのテストドキュメントをご覧ください。
Node.js >= 12をインストールし、JSテストを実行するにはjestインストールnpm install jestでJestをインストールする必要があります。
Houndには、複数のファイル(HTML、CSS、JavaScriptなど)で構成されるWeb UIが含まれています。 UIの変更をコンパイルするには:
make ui
開発を容易にするために、ファイルシステムからファイルを読み取るフラグがあります(非常に愛されている編集/更新サイクルを可能にします)。
まず、実行して必要なすべての依存関係をインストールしていることを確認する必要があります。
make dev
次に、-DEVオプションを使用してHoundサーバーを実行します。
.build/bin/houndd --dev
Etsyで作成:
ハウンドは次のように維持されます。