Housaku ist eine persönliche Suchmaschine, die auf dem FTS5 von SQLite aufgebaut ist, mit dem Sie Ihre Dokumente, Bücher, PDFs, Lieblingsfeeds und vieles mehr an einem Ort abfragen können.

Housaku befindet sich in der frühen Entwicklung, sodass Sie bei der Aktualisierung einige inkompatible Änderungen und andere kleinere Probleme erwarten können. Sobald die Version
v1.0.0erreicht ist, ist es mein Ziel, sich auf die Stabilität zu konzentrieren und Veränderungen so weit wie möglich zu brechen.
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx und .pptx .Die Unterstützung für Dateiformate wie
.odtkommt sowie die Möglichkeit, Beiträge von Bluesky -Feeds und Mastodon zu indizieren.
Der erste Grund, warum ich mich entschloss, an Housaku zu arbeiten, war, mehr über die Grundlagen der Volltext-Suche und darüber zu erfahren, wie Suchmaschinen unter der Motorhaube arbeiten. Wenn Sie sich die Commit -Geschichte ansehen, können Sie anfänglich sehen, dass alle Analyse-, Tokenisierung- und TF/IDF -Berechnungen "manuell" behandelt wurden, bevor ich mich für die Verwendung der FTS5 -Lösung von SQLite aufgrund der Leistung entschied.
Der zweite und letzte Grund war das große Volumen der Dokumente, die ich verwaltete. Ich habe ~ 5.000 Notizen in Obsidian, in Markdown formatiert, ein paar hundert Bücher in meiner Kaliberbibliothek, hauptsächlich in .epub , eine beträchtliche Anzahl von PDFs und PowerPoint -Präsentationen aus meinem Informatik -Abschluss bei UNED. Darüber hinaus habe ich eine große Sammlung von RSS -Feeds, die ich seit langem abonniert habe. Ich wollte/benötigte eine effiziente und einfache Möglichkeit, all diese Dokumente zu durchsuchen, ohne mir Sorgen darüber machen zu müssen, wo sich jedes von ihnen befand oder in welchem Format.
Die empfohlene Methode zur Installation von Housaku ist die Verwendung von UV:
uv tool install --python 3.13 housakuJetzt rennst du einfach:
housaku --helpVerwenden Sie zum Upgrade:
uv tool upgrade housaku
# Or
uv tool upgrade housaku --reinstallpipx Um Housaku mit pipx zu installieren, rennen Sie einfach:
pipx install housakuDenken Sie daran, dass die erforderliche minimale Version von Python
>=3.13ist.
pipSie können Housaku auch über PIP installieren, aber der genaue Befehl hängt davon ab, wie Ihre Umgebung eingerichtet ist. In diesem Fall sollte der Befehl ungefähr so aussehen:
python3 -m pip install housaku Bevor Sie Housaku verwenden, besteht der erste Schritt darin, die Datei config.toml in Ihrem $XDG_CONFIG_HOME/housaku/config.toml zu bearbeiten. Diese Datei wird automatisch generiert, wenn Sie housaku zum ersten Mal ausführen und ungefähr so aussehen:
# 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 = []Der Ordner, der die Konfigurationsdatei sowie die SQLite -Datenbank enthält, wird durch das Dienstprogramm
get_app_dirbestimmt. Hier können Sie mehr darüber lesen.
Eine einfache Möglichkeit, Ihre config.toml -Datei zu öffnen, besteht darin, den folgenden Befehl auszuführen:
housaku config Der beste Weg, um zu sehen, welche Befehle verfügbar sind, besteht darin, housaku mit der Flagge --help zu betreiben.
housaku --helpSie können auch mehr darüber erfahren, was ein bestimmter Befehl durch Ausführen tut:
housaku [command] --help
# For example:
housaku index --help Der Befehl config ist ein sehr einfacher Befehl, mit dem einfach die Datei config.toml mit dem Standard -Editor geöffnet wird.
housaku configNachdem Sie die Liste der Verzeichnisse konfiguriert haben, die die Dokumente enthalten, die Sie indexieren möchten, sowie die Liste der Feeds, aus denen Sie die Beiträge abholen möchten, können Sie ausführen:
housaku indexVerwenden Sie den folgenden Befehl, um nur Ihre Dateien zu indexieren:
housaku index --include filesUm nur Ihre Feeds zu indizieren:
housaku index --include feedsSie können beide Optionen angeben, um Dateien und Feeds zusammen zu indexieren, dies ist jedoch gleichbedeutend mit einfachem Ausführen des
indexohne Optionen.
Sie können auch die Anzahl der Threads ändern, die verwendet werden, wenn Sie Ihre Dateien und Dokumente indizieren:
housaku index -t 8Meine Empfehlung ist, an die Standardnummer der Threads zu bleiben.
Derzeit erfolgt die Indizierungsdateien parallel mit Multi-Threading, was den Prozess schneller macht, aber auch einige Komplikationen einführt. Wenn Sie beispielsweise die Indexierung auf halbem Weg mit ctrl+c abbrechen, werden einige Threads beendet, während andere weiter im Hintergrund ausgeführt werden und dann fehlschlagen.
search Die einfachste Möglichkeit, Ihre Dokumente und Beiträge zu durchsuchen, besteht darin, den search zu verwenden:
houskau searh --query " Django AND Postgres " Sie können auch die Anzahl der Ergebnisse einschränken, indem Sie die Option --limit verwenden, die standardmäßig auf 10 festgelegt ist:
housaku search --query " Django AND Postgres " --limit 20 Wenn Sie keine query mit den Optionen --query/-q angeben, werden Sie aufgefordert, eine einzugeben.
Hier erfahren Sie mehr über die Abfragesyntax.
Mein bevorzugter und empfohlener Weg zur Suche ist die Verwendung der TUI. Um es zu starten, rennen Sie einfach:
housaku tuiUm das TUI zu verlassen, drücken Sie einfach
ctrl + qund um ein Suchergebnis zu öffnen, drücken SieEnterwährend das Ergebnis hervorgehoben wird.
Housaku hat auch eine sehr einfache Web -Benutzeroberfläche, auf die Sie durch Ausführen zugreifen können:
housaku web
Der Standardport ist
4242.
Diese Suchmethode hat einige Einschränkungen. Sie können beispielsweise keine Ergebnisse öffnen, die zu Ihren lokalen Dokumenten verlinken.
vacuum und purge Der Befehl vacuum wird verwendet, um die SQLite -Datenbank zu optimieren, indem der nicht verwendete Raum zurückgewiesen und die Leistung verbessert wird. Um den Befehl Vakuum auszuführen, führen Sie einfach aus:
housaku vacuum Mit dem Befehl purge werden alle Daten vollständig aus der Datenbank gelöscht. Dieser Befehl ist nützlich, wenn Sie die Datenbank in ihren Ausgangszustand zurücksetzen möchten.
housaku purgeSeien Sie vorsichtig, bevor Sie diese beiden Befehle verwenden, da sie direkte Auswirkungen auf die Daten haben, die Sie in Ihrer Datenbank besitzen.
Beiträge sind begrüßt! Wenn Sie Vorschläge haben, können Sie ein Problem öffnen.