在运行时创建新的SOLR集合

时间:2018-02-06 15:32:32

标签: java solr spring-data solr4 spring-data-solr

我正在使用带有JAVA spring boot应用程序的SOLR 7.1.0服务器。 要与SOLR服务器通信我正在使用“springframework.data.solr” 我有一个“模板”模式,我想在运行时创建新的核心。

我想要实现的目标是为每个客户创建一个新核心,同时保持架构不变。

这就是我的SolrConfig的样子:

@Configuration
@EnableSolrRepositories(basePackages = "com.my.repository", multicoreSupport = true)
@ComponentScan
public class SolrConfig {

    @Bean
    public SolrClient solrClient() {
        return new HttpSolrClient("http://localhost:8983/solr");
    }

    @Bean
    @Scope("prototype")
    public SolrTemplate solrTemplate(SolrClient client) throws Exception {
        return new SolrTemplate(client);
    }
}

我的存储库界面:

public interface OpenItemsDebtorsRepository extends CustomOpenItemsDebtorsRepository, SolrCrudRepository<OpenItemDebtor, String> {
    void setCore(String core);

    @Query("orderNumber:*?0*~")
    List<OpenItemDebtor> findByOrderNumber(String orderNumber);
}

我正在寻找类似的东西:

solrTemplate.CreateNewCore(String coreName)

你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我强烈建议您使用本机Solr客户端(SolrJ)进行Spring启动项目。创建一个服务组件,为您提供Solr服务器的实例(CLoudSolrClient)。

SolrJ拥有创建和管理核心和集合所需的所有组件。

我知道这不是一个直接的答案,但我希望这有帮助。