Housaku เป็นเครื่องมือค้นหาส่วนบุคคลที่สร้างขึ้นบน FTS5 ของ Sqlite ที่ให้คุณสอบถามเอกสารหนังสือ PDFs ฟีดที่ชื่นชอบและอื่น ๆ อีกมากมายในที่เดียว

Housaku อยู่ในระหว่างการพัฒนาก่อนดังนั้นคุณสามารถคาดหวังการเปลี่ยนแปลงที่เข้ากันไม่ได้และปัญหาเล็กน้อยอื่น ๆ เมื่ออัปเดต เมื่อถึงเวอร์ชัน
v1.0.0เป้าหมายของฉันคือการมุ่งเน้นไปที่ความมั่นคงและหลีกเลี่ยงการเปลี่ยนแปลงการเปลี่ยนแปลงให้มากที่สุด
.txt , .md , .csv , .pdf , .epub , .docx , .xlsx และ .pptxการสนับสนุนรูปแบบไฟล์เช่น
.odtกำลังจะมาถึงและความเป็นไปได้ของการจัดทำดัชนีโพสต์จากฟีดบลูส์กี้และมาสโตดอน
เหตุผลแรกที่ฉันตัดสินใจที่จะเริ่มทำงานกับ Housaku คือการเรียนรู้เพิ่มเติมเกี่ยวกับพื้นฐานของการค้นหาข้อความเต็มรูปแบบและวิธีการที่เครื่องมือค้นหาทำงานภายใต้ประทุน ในความเป็นจริงถ้าคุณดูประวัติความเป็นมาคุณจะเห็นว่าในขั้นต้นการแยกวิเคราะห์โทเค็นและการคำนวณ TF/IDF ทั้งหมดได้รับการจัดการ "ด้วยตนเอง" ก่อนที่ฉันจะเลือกใช้โซลูชัน FTS5 ของ SQLite เนื่องจากประสิทธิภาพ
เหตุผลที่สองและสุดท้ายคือเอกสารจำนวนมากที่ฉันจัดการ ฉันมีโน้ต ~ 5,000 ใน Obsidian จัดรูปแบบใน Markdown หนังสือสองร้อยเล่มในห้องสมุด Caliber ของฉันส่วนใหญ่ใน .epub จำนวน PDFs จำนวนมากและการนำเสนอ PowerPoint จากปริญญาวิทยาศาสตร์คอมพิวเตอร์ของฉันที่ UNED นอกจากนี้ฉันยังมีฟีด RSS มากมายที่ฉันได้สมัครเป็นเวลานาน ดังนั้นฉันต้องการ/ต้องการวิธีที่มีประสิทธิภาพและง่ายดายในการค้นหาเอกสารทั้งหมดนี้โดยไม่ต้องกังวลเกี่ยวกับข้อมูลเฉพาะของที่ซึ่งแต่ละคนอยู่หรืออยู่ในรูปแบบใด
วิธีที่แนะนำในการติดตั้ง Housaku คือการใช้ UV:
uv tool install --python 3.13 housakuตอนนี้คุณเพิ่งวิ่ง:
housaku --helpในการอัพเกรดใช้:
uv tool upgrade housaku
# Or
uv tool upgrade housaku --reinstallpipx ในการติดตั้ง housaku โดยใช้ pipx เพียงแค่เรียกใช้:
pipx install housakuเพียงจำไว้ว่าจำเป็นต้องใช้ Python รุ่นน้อยที่สุดคือ
>=3.13
pipนอกจากนี้คุณยังสามารถติดตั้ง housaku โดยใช้ PIP แต่คำสั่งที่แน่นอนจะขึ้นอยู่กับว่าสภาพแวดล้อมของคุณตั้งค่าอย่างไร ในกรณีนี้คำสั่งควรมีลักษณะเช่นนี้:
python3 -m pip install housaku ก่อนที่คุณจะเริ่มใช้ housaku ขั้นตอนแรกคือการแก้ไขไฟล์ config.toml ที่อยู่ที่ $XDG_CONFIG_HOME/housaku/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 วิธีที่ดีที่สุดในการดูว่ามีคำสั่งใดบ้างคือการเรียกใช้ housaku ด้วยธง --help
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 โดยใช้ตัวเลือก --query/-q คุณจะได้รับแจ้งให้ป้อน
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับไวยากรณ์การสืบค้นได้ที่นี่
วิธีที่ฉันชอบและแนะนำในการค้นหาคือการใช้ TUI ในการเริ่มต้นเพียงแค่เรียกใช้:
housaku tuiหากต้องการออกจาก TUI เพียงกด
ctrl + qและเพื่อเปิดผลการค้นหากดEnterในขณะที่ผลลัพธ์จะถูกเน้น
Housaku ยังมีเว็บ UI ที่ง่ายมากที่คุณสามารถเข้าถึงได้โดยการรัน:
housaku web
พอร์ตเริ่มต้นคือ
4242
วิธีการค้นหานี้มีข้อ จำกัด บางประการ ตัวอย่างเช่นคุณไม่สามารถเปิดผลลัพธ์ที่ลิงก์ไปยังเอกสารท้องถิ่นของคุณ
vacuum และ purge คำสั่ง vacuum ใช้เพื่อเพิ่มประสิทธิภาพฐานข้อมูล SQLite โดยการเรียกคืนพื้นที่ที่ไม่ได้ใช้และปรับปรุงประสิทธิภาพ ในการเรียกใช้คำสั่งสูญญากาศเพียงดำเนินการ:
housaku vacuum คำสั่ง purge ใช้เพื่อล้างข้อมูลทั้งหมดจากฐานข้อมูลอย่างสมบูรณ์ คำสั่งนี้มีประโยชน์เมื่อคุณต้องการรีเซ็ตฐานข้อมูลเป็นสถานะเริ่มต้น
housaku purgeระวังก่อนใช้คำสั่งทั้งสองนี้เนื่องจากจะมีผลกระทบโดยตรงต่อข้อมูลที่คุณเก็บไว้ในฐานข้อมูลของคุณ
ยินดีต้อนรับผลงาน! หากคุณมีข้อเสนอแนะใด ๆ อย่าลังเลที่จะเปิดปัญหา