使用新架构在Solr中创建新核心,而不使用solr命令

时间:2018-01-13 10:43:06

标签: solr lucene solrj

我有一个用例,就是在程序中动态地在Solr中创建一个新的核心,而无需在instancedir中预先创建模式和配置。

我尝试通过调用:

来使用Solr Core Admin API

〜/管理/芯动作= CREATE&安培;名称=核 - 名称&安培; configSet = basic_configs

并设法使用basic_configs的模式创建一个新核心。

然而,后来我意识到当我更改该核心中的模式时,相应的更改也将反映到basic_configs的模式(因为configSet是一个共享配置)。因此,我无法重用相同的API调用来创建具有新架构的后续新核心。

我知道这可以使用solr命令来创建内核,但我希望以REST API或SolrJ方式实现。

另外,我没有在SolrCloud模式下使用Solr。

1 个答案:

答案 0 :(得分:0)

你可以give an explicit instanceDir when creating the core

admin/cores?action=CREATE&name=core-name&instanceDir=path/to/dir&config=solrconfig.xml&dataDir=data
  

如果没有配置集,那么CREATE调用中指定的instanceDir必须已经存在,并且它必须包含一个conf目录,而该目录又必须包含solrconfig.xml,即您的模式,通常将其命名为managed-schema或schema.xml,以及这些配置引用的任何文件。

     

可以使用config和schema参数指定配置和模式文件名,但这些是专家选项。为避免创建conf目录,您可以做的一件事是使用指向绝对路径的配置和架构参数,但这可能会导致配置混乱,除非您完全了解自己在做什么。