Housaku adalah mesin pencari pribadi yang dibangun di atas FTS5 Sqlite yang memungkinkan Anda menanyakan dokumen, buku, PDF, feed favorit, dan lebih banyak lagi di satu tempat.

Housaku sedang dalam pengembangan awal, sehingga Anda dapat mengharapkan beberapa perubahan yang tidak kompatibel dan masalah kecil lainnya saat memperbarui. Setelah versi
v1.0.0tercapai, tujuan saya adalah untuk fokus pada stabilitas dan menghindari perubahan perubahan sebanyak mungkin.
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx dan .pptx .Dukungan untuk format file seperti
.odtakan datang serta kemungkinan pengindeksan pos dari feed bluesky dan mastodon.
Alasan pertama saya memutuskan untuk mulai bekerja di Housaku adalah untuk mempelajari lebih lanjut tentang dasar-dasar pencarian teks lengkap dan bagaimana mesin pencari beroperasi di bawah kap. Faktanya, jika Anda melihat sejarah komit, Anda dapat melihat bahwa pada awalnya, semua perhitungan parsing, tokenisasi dan TF/IDF ditangani "secara manual" sebelum saya memilih untuk menggunakan solusi FTS5 SQLite karena kinerja.
Alasan kedua dan terakhir adalah volume besar dokumen yang saya kelola. Saya memiliki ~ 5.000 catatan dalam obsidian, diformat dalam penurunan harga, beberapa ratus buku di perpustakaan kaliber saya, terutama di .epub , sejumlah besar PDF, dan presentasi PowerPoint dari gelar ilmu komputer saya di UNED. Selain itu, saya juga memiliki koleksi besar umpan RSS yang telah saya langgar untuk waktu yang lama. Jadi, saya ingin/membutuhkan cara yang efisien dan mudah untuk mencari melalui semua dokumen ini tanpa harus khawatir tentang spesifik di mana masing -masing berada atau dalam format apa.
Cara yang disarankan untuk memasang housaku adalah dengan menggunakan UV:
uv tool install --python 3.13 housakuSekarang, Anda baru saja menjalankan:
housaku --helpUntuk meningkatkan, gunakan:
uv tool upgrade housaku
# Or
uv tool upgrade housaku --reinstallpipx Untuk memasang housaku menggunakan pipx , cukup jalankan:
pipx install housakuIngatlah bahwa versi minimal Python diperlukan adalah
>=3.13.
pipAnda juga dapat menginstal housaku menggunakan PIP, tetapi perintah yang tepat akan tergantung pada bagaimana lingkungan Anda diatur. Dalam hal ini, perintah harus terlihat seperti ini:
python3 -m pip install housaku Sebelum Anda mulai menggunakan housaku, langkah pertama adalah mengedit file config.toml yang terletak di $XDG_CONFIG_HOME/housaku/config.toml Anda. File ini dihasilkan secara otomatis saat pertama kali Anda menjalankan housaku dan akan terlihat seperti ini:
# Welcome! This is the configuration file for Housaku.
# Available themes include:
# - "dracula"
# - "textual-dark"
# - "textual-light"
# - "nord"
# - "gruvbox"
# - "catppuccin-mocha"
# - "textual-ansi"
# - "tokyo-night"
# - "monokai"
# - "flexoki"
# - "catppuccin-latte"
# - "solarized-light"
theme = " dracula "
[ files ]
# Directories to include for indexing.
# Example: include = ["/home/<user>/documents/notes"]
include = []
# Patterns to exclude from the indexing
# Example: exclude = ["*.tmp", "backup", "*.png"]
exclude = []
[ feeds ]
# List of RSS/Atom feeds to index
# Example: urls = ["https://example.com/feed", "https://anotherexample.com/rss"]
urls = []Folder yang menahan file konfigurasi serta database SQLite ditentukan oleh utilitas
get_app_dir. Anda dapat membaca lebih lanjut tentang itu di sini.
Cara mudah untuk membuka file config.toml Anda adalah dengan menjalankan perintah berikut:
housaku config Cara terbaik untuk melihat perintah mana yang tersedia adalah dengan menjalankan housaku dengan bendera --help .
housaku --helpAnda juga dapat mempelajari lebih lanjut tentang apa yang dilakukan perintah spesifik dengan menjalankan:
housaku [command] --help
# For example:
housaku index --help Perintah config adalah perintah yang sangat sederhana yang hanya membuka file config.toml menggunakan editor default.
housaku configSetelah Anda mengkonfigurasi daftar direktori yang berisi dokumen yang ingin Anda indeks, serta daftar feed dari mana Anda ingin mengambil posting, Anda dapat menjalankan:
housaku indexUntuk hanya mengindeks file Anda, gunakan perintah berikut:
housaku index --include filesHanya mengindeks feed Anda:
housaku index --include feedsAnda dapat menentukan kedua opsi untuk mengindeks file dan umpan bersama, tetapi ini setara dengan hanya menjalankan perintah
indextanpa opsi apa pun.
Anda juga dapat mengubah jumlah utas yang digunakan saat mengindeks file dan dokumen Anda:
housaku index -t 8Rekomendasi saya adalah tetap dengan jumlah utas default.
Saat ini, pengindeksan file dilakukan secara paralel menggunakan multi-threading, yang membuat proses lebih cepat tetapi juga memperkenalkan beberapa komplikasi. Misalnya, membatalkan pengindeksan setengah jalan menggunakan ctrl+c akan menyebabkan beberapa utas keluar sementara yang lain akan terus berjalan di latar belakang dan kemudian gagal.
search Cara paling sederhana untuk mulai mencari dokumen dan posting Anda adalah dengan menggunakan perintah search :
houskau searh --query " Django AND Postgres " Anda juga dapat membatasi jumlah hasil dengan menggunakan opsi --limit yang, secara default, diatur ke 10:
housaku search --query " Django AND Postgres " --limit 20 Jika Anda tidak menentukan query menggunakan opsi --query/-q Anda akan diminta untuk memasukkannya.
Anda dapat mempelajari lebih lanjut tentang sintaks kueri di sini.
Cara favorit dan disarankan saya untuk mencari adalah dengan menggunakan TUI. Untuk memulainya, jalankan saja:
housaku tuiUntuk keluar dari TUI, cukup tekan
ctrl + q, dan untuk membuka hasil pencarian, tekanEntersaat hasilnya disorot.
Housaku juga memiliki UI web yang sangat sederhana yang dapat Anda akses dengan menjalankan:
housaku web
Port default adalah
4242.
Metode pencarian ini memiliki beberapa batasan. Misalnya, Anda tidak dapat membuka hasil yang tautan ke dokumen lokal Anda.
vacuum dan purge Perintah vacuum digunakan untuk mengoptimalkan database SQLite dengan merebut kembali ruang yang tidak digunakan dan meningkatkan kinerja. Untuk menjalankan perintah vakum, cukup jalankan:
housaku vacuum Perintah purge digunakan untuk sepenuhnya menghapus semua data dari database. Perintah ini berguna ketika Anda ingin mengatur ulang database ke keadaan awalnya.
housaku purgeHati -hati sebelum menggunakan kedua perintah ini karena mereka akan memiliki dampak langsung pada data yang Anda pegang di database Anda.
Kontribusi disambut! Jika Anda memiliki saran, silakan membuka masalah.