Multi-tier SaaS environment


What is the best strategy for indexing multi-tier data? I.e. let us say we have one (1) huge database with many documents all separated by a customerId field. And I want to implement a search function that only searches within the customerId “range”. (Customer A only sees records tagged with customerId: A, Customer B only sees records tagged with customerId: B etc…)

I see two alternatives, but I am pretty new to search (and very new to Manticore), so I might be very wrong:

1.Create indexes prefixed with customerId i.e. customerId.indexnameA, cusotmerId.indexnameB etc
2.Create a shared index and filter with a customerId-field in the index.

The total amount of data is HUGE. But, some customer will have millions of document and some will only have a couple of hundred documents. And you do not want to customers having a small amount of document to be impacted by the ones having huge amount of documents.

Any ideas/tips?

(There is also the alternative with one manticore installation per customerId. This is not an alternative for us as it would require too much infrastructure.)

I would put each customer in it’s index. This gives you flexibility as later if you want spread the indexes over multiple servers.

Note that dot is not allowed in index names. You can use underscore instead.