Hound adalah mesin pencari kode sumber yang sangat cepat. Inti didasarkan pada artikel ini (dan kode) dari Russ Cox: pencocokan ekspresi reguler dengan indeks trigram. Hound sendiri adalah frontend yang bereaksi statis yang berbicara dengan backend. Backend menyimpan indeks terkini untuk setiap repositori dan menjawab pencarian melalui API minimal. Ini dia beraksi:

Instal GO (Diperlukan Versi Minimum: 1.16) dan NPM
Kloning Repositori dan Jalankan Make.
git clone https://github.com/hound-search/hound.git
cd hound
make
Binari yang dihasilkan ( hound , houndd ) dapat ditemukan di .Build/ bin/ direktori.
{
"dbpath" : " db " ,
"repos" : {
"Hound" : {
"url" : " https://github.com/hound-search/hound.git " ,
"vcs-config" : {
"ref" : " main "
}
}
}
}Daftar lengkap opsi konfigurasi yang tersedia dapat ditemukan di sini.
houndd di direktori yang sama dengan config.json Anda. Anda harus melihat output mirip dengan: 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
Instal Docker jika Anda tidak memilikinya. Kami membutuhkan setidaknya Docker >= 1.14 .
Buat file config.json dan gunakan untuk mendaftar repositori Anda. Lihatlah contoh kami config.json untuk melihat cara mengatur berbagai jenis repositori. Misalnya, kami dapat mengonfigurasi Hound untuk mencari kode sumbernya sendiri menggunakan konfigurasi yang ditemukan di default-config.json.
docker run -d -p 6080:6080 --name hound -v $(pwd):/data ghcr.io/hound-search/hound:latest
Anda harus dapat menavigasi ke http: // localhost: 6080/seperti biasa.
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
Tidak ada bendera khusus untuk menjalankan Hound dalam produksi. Anda dapat menggunakan flag --addr=:6880 untuk mengontrol port yang mengikat server. Saat ini, Hound tidak mendukung TLS karena sebagian besar pengguna hanya menjalankan Hound di belakang Apache atau Nginx. Namun, kami terbuka untuk kontribusi untuk menambahkan dukungan TLS.
Kami telah menggunakan banyak alat serupa di masa lalu, dan kebanyakan dari mereka terlalu lambat, terlalu sulit untuk dikonfigurasi, atau membutuhkan terlalu banyak perangkat lunak untuk diinstal. Yang membawa kita ke ...
Yup, itu saja. Anda dapat proxy permintaan ke layanan GO melalui Apache/nginx/dll., Tapi itu tidak diperlukan.
Saat ini Hound hanya diuji pada MacOS dan CentOS, tetapi harus bekerja pada sistem *nix apa pun. Hound di Windows tidak didukung tetapi kami telah mendengarnya mengkompilasi dan berjalan dengan baik (meskipun membantu untuk mengecualikan folder data Anda dari Windows Search Indexer).
Hound mendukung sistem kontrol versi berikut:
"vcs" : "hg" di konfigurasi"vcs" : "svn" di konfigurasi"vcs" : "bzr" di konfigurasi"vcs" : "local" di konfigurasiLihat config-example.json untuk contoh cara menggunakan setiap VC.
Ada beberapa cara untuk mendapatkan Hound untuk mengindeks repositori pribadi:
local . Ini memungkinkan Anda untuk mengindeks direktori lokal. Anda dapat menetapkan "watch-changes" : true untuk menghitung hash rekursif dari semua file di direktori dan secara otomatis mengindeks ulang.file:// protokol. Ini memungkinkan Anda untuk mengindeks klon lokal repositori. Kelemahannya di sini adalah bahwa pemungutan suara untuk menjaga repo up to date tidak akan berfungsi. -v $(pwd)/src:/src"url" : "[email protected]:foo/bar.git" . Selama Anda menyiapkan tombol SSH Anda di kotak tempat Hound berjalan ini akan berfungsi. Secara default Hound Polls URL di konfigurasi untuk pembaruan setiap 30 detik. Anda dapat mengganti nilai ini dengan mengatur kunci ms-between-poll berdasarkan per repo di konfigurasi. Jika Anda mengindeks sejumlah besar repositori, Anda mungkin juga tertarik untuk mengubah properti max-concurrent-indexers . Anda dapat melihat cara kerja ini dalam konfigurasi contoh.
Saat ini editor berikut memiliki plugin yang mendukung Hound:
git clone https://github.com/hound-search/hound.git
cd hound
make
Hound Executable akan tersedia di .build/bin .
Ada peningkatan jumlah tes di masing -masing paket di Hound. Pastikan pass ini sebelum mengunggah permintaan tarik Anda. Anda dapat menjalankan tes dengan perintah berikut. Untuk menjalankan seluruh test suite, gunakan:
make test
Jika Anda hanya ingin menjalankan JavaScript Test Suite, gunakan:
npm test
File GO apa pun yang diakhiri dengan _test.go diasumsikan sebagai file uji. Demikian pula, setiap file JavaScript yang berakhir di .test.js secara otomatis dijalankan oleh Jest, pelari uji kami. Tes harus hidup di sebelah file yang mereka liput. Lihatlah dokumen Jest untuk detail lebih lanjut tentang menulis tes jest, dan periksa dokumen pengujian Go untuk detail lebih lanjut tentang pengujian kode Go.
Anda perlu menginstal Node.js >= 12 dan menginstal jest oleh npm install jest untuk menjalankan tes JS.
Hound menyertakan UI Web yang terdiri dari beberapa file (HTML, CSS, JavaScript, dll.). Untuk mengkompilasi perubahan UI, gunakan:
make ui
Untuk membuat pengembangan lebih mudah, ada bendera yang akan membaca file dari sistem file (memungkinkan siklus pengeditan/penyegaran yang sangat disukai).
Pertama, Anda harus memastikan bahwa Anda memiliki semua dependensi yang Anda butuhkan dengan menjalankan:
make dev
Kemudian jalankan server Hound dengan opsi --dev:
.build/bin/houndd --dev
Dibuat di Etsy oleh:
Hound dipertahankan oleh: