Housaku는 SQLITE의 FTS5 위에 제작 된 개인 검색 엔진으로 문서, 서적, PDF, 좋아하는 피드 등을 한 곳에서 쿼리 할 수 있습니다.

Housaku는 초기 개발에 있으므로 업데이트 할 때 호환되지 않는 변경 및 기타 사소한 문제를 기대할 수 있습니다. 버전
v1.0.0에 도달하면 내 목표는 안정성에 초점을 맞추고 가능한 한 변화를 피하는 것입니다.
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx 및 .pptx 와 같은 여러 파일 형식에 대한 지원.
.odt와 같은 파일 형식에 대한 지원과 Bluesky Feeds 및 Mastodon의 게시물을 색인화 할 가능성이 있습니다.
내가 Housaku에서 작업하기로 결정한 첫 번째 이유는 전체 텍스트 검색의 기본 사항과 검색 엔진이 후드 아래에서 작동하는 방법에 대해 더 많이 배우는 것입니다. 실제로 Commit History를 보면 성능으로 인해 SQLITE의 FTS5 솔루션을 사용하기 전에 모든 구문 분석, 토큰 화 및 TF/IDF 계산이 "수동으로"처리되었음을 알 수 있습니다.
두 번째이자 마지막 이유는 내가 관리하고있는 많은 양의 문서였습니다. 나는 Obsidian에 ~ 5,000 개의 노트를 가지고 있으며, Markdown에 서식, Caliber Library의 수백 권의 책, 주로 .epub , 상당수의 PDF 및 UNED의 컴퓨터 과학 학위에서 파워 포인트 프레젠테이션을 가지고 있습니다. 또한 오랫동안 구독 한 방대한 RSS 피드 컬렉션도 있습니다. 따라서 저는 각 문서의 위치 또는 어떤 형식의 세부 사항에 대해 걱정할 필요 없이이 모든 문서를 통해 효율적이고 쉬운 방법을 검색 할 수있는 방법을 원했습니다.
Housaku를 설치하는 권장 방법은 UV를 사용하는 것입니다.
uv tool install --python 3.13 housaku이제 방금 실행합니다.
housaku --help업그레이드, 사용 :
uv tool upgrade housaku
# Or
uv tool upgrade housaku --reinstallpipx 사용 pipx 사용하여 housaku를 설치하려면 간단히 실행하십시오.
pipx install housaku필요한 파이썬의 최소 버전은
>=3.13입니다.
pip 를 통해PIP를 사용하여 Housaku를 설치할 수도 있지만 정확한 명령은 환경 설정 방법에 따라 다릅니다. 이 경우 명령은 다음과 같습니다.
python3 -m pip install housaku Housaku를 사용하기 전에 첫 번째 단계는 $XDG_CONFIG_HOME/housaku/config.toml 에있는 config.toml 파일을 편집하는 것입니다. 이 파일은 housaku 처음 실행할 때 자동으로 생성되며 다음과 같은 것을 보게됩니다.
# 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 = []구성 파일과 sqlite 데이터베이스를 보유하는 폴더는
get_app_dir유틸리티에 의해 결정됩니다. 당신은 그것에 대해 더 읽을 수 있습니다.
config.toml 파일을 여는 쉬운 방법은 다음 명령을 실행하는 것입니다.
housaku config 어떤 명령을 사용할 수 있는지 확인하는 가장 좋은 방법은 --help 플래그를 사용하여 housaku 실행하는 것입니다.
housaku --help또한 실행하여 특정 명령이하는 일에 대해 자세히 알아볼 수 있습니다.
housaku [command] --help
# For example:
housaku index --help config 명령은 기본 편집기를 사용하여 config.toml 파일을 열 수있는 매우 간단한 명령입니다.
housaku config색인하려는 문서가 포함 된 디렉토리 목록과 게시물을 가져올 피드 목록을 구성한 후에는 다음을 수행 할 수 있습니다.
housaku index파일 만 색인하려면 다음 명령을 사용하십시오.
housaku index --include files피드 만 색인하려면 :
housaku index --include feeds파일과 피드를 함께 인덱싱하기 위해 두 옵션을 지정할 수 있지만 옵션없이
index명령을 실행하는 것과 같습니다.
파일 및 문서를 색인 할 때 사용중인 스레드 수를 변경할 수도 있습니다.
housaku index -t 8내 권장 사항은 기본 스레드 번호를 고수하는 것입니다.
현재 인덱싱 파일은 멀티 스레딩을 사용하여 병렬로 수행되므로 프로세스가 더 빠르지 만 합병증도 소개합니다. 예를 들어, ctrl+c 사용하여 반쯤 인덱싱을 취소하면 일부 스레드가 종료되고 다른 스레드는 배경에서 계속 실행 된 다음 실패합니다.
search 명령 문서와 게시물 검색을 시작하는 가장 간단한 방법은 search 명령을 사용하는 것입니다.
houskau searh --query " Django AND Postgres " 또한 기본적으로 10으로 설정된 --limit 옵션을 사용하여 결과 수를 제한 할 수 있습니다.
housaku search --query " Django AND Postgres " --limit 20 --query/-q 옵션을 사용하여 query 지정하지 않으면 입력하라는 메시지가 표시됩니다.
쿼리 구문에 대한 자세한 내용은 여기를 참조하십시오.
내가 가장 좋아하고 추천하는 검색 방법은 Tui를 사용하는 것입니다. 시작하려면 그냥 실행하십시오.
housaku tuiTUI를 종료하려면
ctrl + q누르고 검색 결과를 열려면 결과가 강조 표시되는 동안Enter누릅니다.
Housaku는 또한 실행을 통해 액세스 할 수있는 매우 간단한 웹 UI가 있습니다.
housaku web
기본 포트는
4242입니다.
이 검색 방법에는 몇 가지 제한 사항이 있습니다. 예를 들어, 로컬 문서에 링크 한 결과를 열 수는 없습니다.
vacuum 및 purge vacuum 명령은 사용되지 않은 공간을 되 찾아 성능을 향상시켜 SQLITE 데이터베이스를 최적화하는 데 사용됩니다. 진공 명령을 실행하려면 간단히 실행하십시오.
housaku vacuum purge 명령은 데이터베이스에서 모든 데이터를 완전히 지우는 데 사용됩니다. 이 명령은 데이터베이스를 초기 상태로 재설정 할 때 유용합니다.
housaku purge이 두 명령을 모두 사용하기 전에주의하십시오. 데이터베이스에서 보유한 데이터에 직접적인 영향을 미치기 때문입니다.
기부금이 환영받습니다! 제안이 있으시면 자유롭게 문제를여십시오.