Housaku是一個個人搜索引擎,建立在SQLite的FTS5之上,可讓您查詢文檔,書籍,PDF,最喜歡的供稿等。

Housaku處於早期開發中,因此您可以期望在更新時發生一些不兼容的變化和其他小問題。一旦達到
v1.0.0版本,我的目標是專注於穩定性並避免盡可能多地破壞變化。
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx和.pptx 。對
.odt之類的文件格式的支持也即將到來,並且可能會從Bluesky Feeds和Mastodon索引帖子。
我決定開始在Housaku工作的第一個原因是了解更多有關全文搜索的基礎知識以及搜索引擎在引擎蓋下的運行方式。實際上,如果您查看提交歷史記錄,您可以“手動”處理所有解析,令牌化和TF/IDF計算,然後才選擇由於性能而選擇使用SQLite的FTS5解決方案。
第二個也是最後一個原因是我管理的大量文件。我有大約5,000個在黑曜石中的筆記,在Markdown中格式化,我的口徑圖書館中的幾百本書,主要是.epub ,大量的PDF和我在UNED的計算機科學學位的PowerPoint演示文稿。此外,我還訂閱了很長一段時間的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只需記住,所需的Python的最小版本
>=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 "您還可以使用--limit選項限制結果數,默認情況下,該選項設置為10:
housaku search --query " Django AND Postgres " --limit 20如果您不使用--query/-q選項指定query則將提示輸入一個。
您可以在此處了解有關查詢語法的更多信息。
我最喜歡和推薦的搜索方法是使用TUI。要開始,只需運行:
housaku tui要退出TUI,只需按
ctrl + q,然後打開搜索結果,請在突出顯示結果時按Enter。
Housaku還具有非常簡單的Web UI,您可以通過運行訪問:
housaku web
默認端口為
4242。
這種搜索方法有一些局限性。例如,您無法打開鏈接到本地文檔的結果。
vacuum和purge vacuum命令用於通過收回未使用的空間和提高性能來優化SQLite數據庫。要運行真空命令,只需執行:
housaku vacuum purge命令用於完全清除數據庫中的所有數據。當您要將數據庫重置為其初始狀態時,此命令很有用。
housaku purge使用這兩個命令之前,請小心,因為它們將直接影響您在數據庫中持有的數據。
歡迎捐款!如果您有任何建議,請隨時打開問題。