在运行时创建新的 SOLR 集合
Create new SOLR collection at runtime
我正在使用带有 JAVA spring 启动应用程序的 SOLR 7.1.0 服务器。
与我使用的 SOLR 服务器通信 "springframework.data.solr"
我有一个 "template" 模式,我想在运行时从中创建新的核心。
我想要实现的目标是为每个客户创建一个新的核心,同时保持架构相同。
这是我的 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)
你有什么建议吗?
我强烈建议为您的 spring 引导项目使用本机 Solr 客户端 (SolrJ)。创建一个服务组件,为您提供 Solr 服务器 (CLoudSolrClient) 的实例。
SolrJ 拥有创建和管理核心和集合所需的所有组件。
我知道这不是一个直接的答案,但我希望这对您有所帮助。
我正在使用带有 JAVA spring 启动应用程序的 SOLR 7.1.0 服务器。 与我使用的 SOLR 服务器通信 "springframework.data.solr" 我有一个 "template" 模式,我想在运行时从中创建新的核心。
我想要实现的目标是为每个客户创建一个新的核心,同时保持架构相同。
这是我的 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)
你有什么建议吗?
我强烈建议为您的 spring 引导项目使用本机 Solr 客户端 (SolrJ)。创建一个服务组件,为您提供 Solr 服务器 (CLoudSolrClient) 的实例。
SolrJ 拥有创建和管理核心和集合所需的所有组件。
我知道这不是一个直接的答案,但我希望这对您有所帮助。