Skip to content

Multi-core with Multi-tenancy #7

@skrasovsky

Description

@skrasovsky

Hi!

We use solr 5.x and spring-data-solr. I try to understand is it possible to use multi-core in multi-tenancy mode.

We have several tenants and we want to have a single solr core per tenant. The main problem is a spring repositories, i can't define which core should use repository for current tenant.
For example:

public class User {
    @Field("username")
    private String username;
}

public interface UserRepository extends SolrCrudRepository<User, String> {
    User findUserByUsername(String username);
}

And two cores:

http://localhost:8983/solr/tenant_1
http://localhost:8983/solr/tenant_2

So, if tenant = tenant_1, repository should search for user in /solr/tenant_1, if tenant = tenant_2 in /solr/tenant_1.

I can do it manually via solrj:

String solrServerUrl = "http://localhost:8983/solr";
MulticoreSolrServerFactory solrServerFactory = new MulticoreSolrServerFactory(new HttpSolrServer(solrServerUrl));

SolrServer solrServer = solrServerFactory.getSolrServer("tenant1");

SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery("find user by username query");

solrServer.query(solrQuery);

But it is not convenient. In this case we need to rewrite all our solr repositories.

@christophstrobl can you advice something?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions