Hi,
I’m currently designing the architecture for a new project using Manticore Search and I would love to get your advice on a few key points to ensure I’m following the best practices.
Here are my questions:
1. Multi-tenancy Strategy I need to implement a multi-tenant system. I’m considering two main approaches:
- Approach A: Use a single, large table with a
tenant_id
attribute. All queries would then need aWHERE tenant_id = ...
filter. - Approach B: Create a separate table for each tenant (e.g.,
docs_tenant_1
,docs_tenant_2
, etc.).
My question is: what is the generally recommended approach for performance, scalability, and ease of management? If I choose Approach B, is it possible and efficient to perform a single query that searches across multiple (or all) tenant tables at once?
2. Multiple Vector Columns in a Single Table My documents have distinct semantic features that I would like to capture in separate vector fields. Is it possible for a single table to have more than one vector column?
If this schema is valid, can a single KNN query perform a search against both vector columns simultaneously? For example, finding a document that is a close match for a query vector on vector_1
and/or another query vector on vector_2
within the same search operation, or would this require two separate searches?
3. Columnar Storage for Vectors at Scale I am expecting to have around 15 million documents in the main table. Given this scale, would you recommend defining the vector fields with engine='columnar'
to optimize for RAM usage? What are the performance trade-offs (if any) for KNN search speed when using columnar storage for vectors compared to the default row-wise storage?
thanks.