Holaku es un motor de búsqueda personal construido sobre el FTS5 de SQLITE que le permite consultar sus documentos, libros, PDF, feeds favoritos y más en un solo lugar.

Housaku está en desarrollo temprano, por lo que puede esperar algunos cambios incompatibles y otros problemas menores al actualizar. Una vez que se alcanza la versión
v1.0.0, mi objetivo es centrarme en la estabilidad y evitar los cambios de ruptura tanto como sea posible.
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx y .pptx .El soporte para formatos de archivo como
.odtse acerca, así como la posibilidad de indexar publicaciones de Bluesky Feeds y Mastodon.
La primera razón por la que decidí comenzar a trabajar en Housaku fue aprender más sobre los conceptos básicos de la búsqueda de texto completo y cómo funcionan los motores de búsqueda debajo del capó. De hecho, si nos fijamos en el historial de confirmación, puede ver eso inicialmente, todo el análisis, la tokenización y los cálculos de TF/IDF se manejaron "manualmente" antes de optar por usar la solución FTS5 de SQLITE debido al rendimiento.
La segunda y última razón fue el gran volumen de documentos que estaba administrando. Tengo ~ 5,000 notas en Obsidian, formateadas en Markdown, un par de cientos de libros en mi biblioteca de calibre, principalmente en .epub , un número significativo de PDF y presentaciones de PowerPoint de mi título de informática en SNUED. Además, también tengo una gran colección de alimentos RSS que me he suscrito durante mucho tiempo. Por lo tanto, quería/necesitaba una forma eficiente y fácil de buscar en todos estos documentos sin tener que preocuparse por los detalles de dónde se encontraba cada uno de ellos o en qué formato.
La forma recomendada de instalar Holaku es mediante el uso de UV:
uv tool install --python 3.13 housakuAhora, acabas de ejecutar:
housaku --helpPara actualizar, usar:
uv tool upgrade housaku
# Or
uv tool upgrade housaku --reinstallpipx Para instalar Holaku con pipx , simplemente ejecute:
pipx install housakuSolo recuerde que la versión mínima de Python requerida es
>=3.13.
pipTambién puede instalar Holaku usando PIP, pero el comando exacto dependerá de cómo se configure su entorno. En este caso, el comando debería verse algo así:
python3 -m pip install housaku Antes de comenzar a usar Housaku, el primer paso es editar el archivo config.toml ubicado en su $XDG_CONFIG_HOME/housaku/config.toml . Este archivo se genera automáticamente la primera vez que ejecuta housaku y se verá así:
# 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 = []La carpeta que contiene el archivo de configuración, así como la base de datos SQLite, está determinada por la utilidad
get_app_dir. Puedes leer más al respecto aquí.
Una manera fácil de abrir su archivo config.toml es ejecutar el siguiente comando:
housaku config La mejor manera de ver qué comandos están disponibles es ejecutar housaku con la bandera --help .
housaku --helpTambién puede obtener más información sobre lo que hace un comando específico ejecutando:
housaku [command] --help
# For example:
housaku index --help El comando config es un comando muy simple que solo abre el archivo config.toml usando el editor predeterminado.
housaku configDespués de haber configurado la lista de directorios que contienen los documentos que desea indexar, así como la lista de feeds de los que desea obtener las publicaciones, puede ejecutar:
housaku indexPara indexar solo sus archivos, use el siguiente comando:
housaku index --include filesPara indexar solo sus alimentos:
housaku index --include feedsPuede especificar ambas opciones para indexar archivos y alimentarse, pero esto es equivalente a simplemente ejecutar el comando
indexsin ninguna opción.
También puede cambiar el número de subprocesos que se utilizan al indexar sus archivos y documentos:
housaku index -t 8Mi recomendación es seguir con el número predeterminado de hilos.
En este momento, la indexación de archivos se realiza en paralelo usando múltiples subprocesos, lo que hace que el proceso sea más rápido, pero también introduce algunas complicaciones. Por ejemplo, la cancelación de la indexación a mitad de camino usando ctrl+c hará que algunos subprocesos salgan mientras que otros continuarán funcionando en segundo plano y luego fallarán.
search La forma más sencilla de comenzar a buscar sus documentos y publicaciones es utilizando el comando search :
houskau searh --query " Django AND Postgres " También puede limitar el número de resultados utilizando la opción --limit que, por defecto, está configurada en 10:
housaku search --query " Django AND Postgres " --limit 20 Si no especifica una query usando las opciones --query/-q se le pedirá que ingrese una.
Puede obtener más información sobre la sintaxis de la consulta aquí.
Mi forma favorita y recomendada de buscar es usar el TUI. Para comenzar, simplemente ejecute:
housaku tuiPara salir del TUI simplemente presione
ctrl + q, y para abrir un resultado de búsqueda, presioneEntermientras se resalte el resultado.
Housaku también tiene una interfaz de usuario web muy simple a la que puede acceder ejecutando:
housaku web
El puerto predeterminado es
4242.
Este método de búsqueda tiene algunas limitaciones. Por ejemplo, no puede abrir resultados que vinculen a sus documentos locales.
vacuum y purge El comando vacuum se utiliza para optimizar la base de datos SQLite recuperando el espacio no utilizado y mejorando el rendimiento. Para ejecutar el comando de vacío, simplemente ejecute:
housaku vacuum El comando purge se usa para borrar completamente todos los datos de la base de datos. Este comando es útil cuando desea restablecer la base de datos a su estado inicial.
housaku purgeTenga cuidado antes de usar ambos comandos, ya que tendrán un impacto directo en los datos que tiene en su base de datos.
¡Las contribuciones son bienvenidas! Si tiene alguna sugerencia, no dude en abrir un problema.