On 8/26/2016 1:13 PM, Chamil Jeewantha wrote: > We are using SolrCloud as the search provider of a multi-tenant cloud based > application. We have one schema for all the tenants. The indexes will have > large number(millions) of documents. > > As of our research, we have two options, > > - One large collection for all the tenants and use Composite-ID routing > - Collection per tenant
I would tend to agree that you should use SolrCloud. And to avoid potential problems, each tenant should have their own collection or collections. You probably also need to put a smart load balancer in front of Solr that can restrict access to URL paths containing the collection names to the source addresses for each tenant. The tenants should have no access to the admin UI, because it's not possible to keep people using the admin UI from seeing collections that aren't theirs. Developing that kind of security could be possible, but won't be easy at all. If access to the admin UI is something that your customers demand, then I think you'll need to have an entire cloud per tenant -- which probably means you're going to want to delve into virtualization, possibly using one of the lightweight implementations like Docker. Note that if you take this path, you're going to need a LOT of RAM -- much more than you might imagine. Thanks, Shawn