Properties
category: reference tags: [tasks, semantic-search, faiss, multi-tenant] last_updated: 2026-03-20 confidence: high
Semantic Search Multi-Tenant — IMPLEMENTED
Solution (2026-03-20)
All multi-tenant issues resolved. FAISS backend with BackendRegistry provides per-wiki isolation.
Implementation
- BackendRegistry manages per-wiki FAISS backends with lazy initialization
- Per-wiki FAISS indexes at
/srv/data/faiss/{slug}/— natural isolation, no slug-prefix hacking - Lifecycle hooks (
page_saved/page_deleted/page_renamed) viaHookListenerreplace the single-tenant sync thread reindex_allis per-wiki scoped — reindexing one wiki does not affect others- Auto-index on first access — existing pages are back-filled when a wiki is first accessed
- ONNX MiniLM-L6-v2 embeddings (ChromaDB bundled) — no model download issues
- ChromaDB deprecated and disabled
Original problems (all resolved)
- One shared ChromaDB collection — Replaced by per-wiki FAISS directories.
- One sync thread tied to default wiki — Replaced by per-request lifecycle hooks.
reindex_allwipes everything — Now per-wiki scoped.- No auto-index for new wikis — Auto-reindex on first wiki access.
- Embedding model download — ONNX model bundled, no download needed.
Related
- Tasks/Semantic_Search_Architecture — overall architecture
- Dev/Proxmox_CPU_Type — numpy X86_V2 issue (workaround in place)
- Design/Async_Embedding_Pipeline — original FAISS + MiniLM design (AWS, archived)
