Housaku est un moteur de recherche personnel construit au-dessus du FTS5 de SQLite qui vous permet de demander vos documents, livres, PDF, flux préférés et plus en un seul endroit.

Housaku est en début de développement, vous pouvez donc vous attendre à des changements incompatibles et à d'autres problèmes mineurs lors de la mise à jour. Une fois que la version
v1.0.0est atteinte, mon objectif est de me concentrer sur la stabilité et d'éviter la rupture des changements autant que possible.
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx et .pptx .Prise en charge des formats de fichiers comme
.odtarrive ainsi que la possibilité d'indexer les publications de Bluesky Feeds et Mastodon.
La première raison pour laquelle j'ai décidé de commencer à travailler sur Housaku était d'en savoir plus sur les bases de la recherche en texte intégral et le fonctionnement des moteurs de recherche sous le capot. En fait, si vous regardez l'histoire de la validation, vous pouvez voir qu'au départ, tous les calculs d'analyse, de tokenisation et de TF / IDF ont été traités "manuellement" avant d'avoir choisi d'utiliser la solution FTS5 de SQLite en raison des performances.
La deuxième et dernière raison a été le grand volume de documents que je gérais. J'ai environ 5 000 billets en obsidien, formaté dans Markdown, quelques centaines de livres dans ma bibliothèque de calibre, principalement dans .epub , un nombre important de PDF et des présentations PowerPoint de mon diplôme en informatique chez UNED. De plus, j'ai également une vaste collection de flux RSS auxquels je suis souscrit depuis longtemps. Donc, je voulais / avait besoin d'un moyen efficace et facile de rechercher tous ces documents sans avoir à se soucier des détails de l'endroit où chacun d'eux était situé ou dans quel format.
La façon recommandée d'installer Housaku consiste à utiliser les UV:
uv tool install --python 3.13 housakuMaintenant, tu viens de courir:
housaku --helpPour mettre à niveau, utilisez:
uv tool upgrade housaku
# Or
uv tool upgrade housaku --reinstallpipx Pour installer Housaku à l'aide de pipx , exécutez simplement:
pipx install housakuN'oubliez pas que la version minimale de Python requise est
>=3.13.
pipVous pouvez également installer Housaku à l'aide de PIP, mais la commande exacte dépendra de la configuration de votre environnement. Dans ce cas, la commande devrait ressembler à ceci:
python3 -m pip install housaku Avant de commencer à utiliser Housaku, la première étape consiste à modifier le fichier config.toml situé à votre $XDG_CONFIG_HOME/housaku/config.toml . Ce fichier est généré automatiquement la première fois que vous exécutez housaku et ressemblera à ceci:
# 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 = []Le dossier qui contient le fichier de configuration ainsi que la base de données SQLite sont déterminés par l'utilitaire
get_app_dir. Vous pouvez en savoir plus ici.
Un moyen facile d'ouvrir votre fichier config.toml consiste à exécuter la commande suivante:
housaku config La meilleure façon de voir quelles commandes sont disponibles est d'exécuter housaku avec le drapeau --help .
housaku --helpVous pouvez également en savoir plus sur ce qu'une commande spécifique fait en exécutant:
housaku [command] --help
# For example:
housaku index --help La commande config est une commande très simple qui ouvre simplement le fichier config.toml à l'aide de l'éditeur par défaut.
housaku configAprès avoir configuré la liste des répertoires contenant les documents que vous souhaitez indexer, ainsi que la liste des flux à partir desquels vous souhaitez récupérer les messages, vous pouvez exécuter:
housaku indexPour indexer uniquement vos fichiers, utilisez la commande suivante:
housaku index --include filesPour indexer uniquement vos flux:
housaku index --include feedsVous pouvez spécifier les deux options pour indexer les fichiers et les alimenter, mais cela équivaut à simplement exécuter la commande
indexsans aucune option.
Vous pouvez également modifier le nombre de threads utilisés lors de l'indexation de vos fichiers et documents:
housaku index -t 8Ma recommandation est de s'en tenir au nombre par défaut de threads.
À l'heure actuelle, les fichiers d'indexation se font en parallèle à l'aide du multi-threading, ce qui rend le processus plus rapide mais introduit également certaines complications. Par exemple, l'annulation de l'indexation à mi-chemin à l'aide ctrl+c entraînera la sortie de certains threads tandis que d'autres continueront de fonctionner en arrière-plan, puis échoueront.
search La façon la plus simple de commencer à rechercher vos documents et vos messages est en utilisant la commande search :
houskau searh --query " Django AND Postgres " Vous pouvez également limiter le nombre de résultats en utilisant l'option --limit qui, par défaut, est défini sur 10:
housaku search --query " Django AND Postgres " --limit 20 Si vous ne spécifiez pas de query en utilisant les options --query/-q vous serez invité à en saisir une.
Vous pouvez en savoir plus sur la syntaxe de requête ici.
Mon moyen préféré et recommandé de rechercher est d'utiliser le TUI. Pour commencer, il suffit de courir:
housaku tuiPour quitter le TUI, appuyez simplement sur
ctrl + q, et pour ouvrir un résultat de recherche, appuyez surEnterpendant que le résultat est mis en surbrillance.
Housaku a également une interface utilisateur Web très simple à laquelle vous pouvez accéder en exécutant:
housaku web
Le port par défaut est
4242.
Cette méthode de recherche a certaines limites. Par exemple, vous ne pouvez pas ouvrir les résultats qui lient vos documents locaux.
vacuum et purge La commande vacuum est utilisée pour optimiser la base de données SQLite en récupérant un espace inutilisé et en améliorant les performances. Pour exécuter la commande vide, exécutez simplement:
housaku vacuum La commande purge est utilisée pour effacer complètement toutes les données de la base de données. Cette commande est utile lorsque vous souhaitez réinitialiser la base de données à son état initial.
housaku purgeSoyez prudent avant d'utiliser ces deux commandes, car ils auront un impact direct sur les données que vous détienz dans votre base de données.
Les contributions sont les bienvenues! Si vous avez des suggestions, n'hésitez pas à ouvrir un problème.