首页 文章

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

提问于
浏览
0

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

我通过调用以下方法尝试使用Solr Core Admin API:

〜/管理/内核?行动=创建和名称=核心名称与configSet = basic_configs

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

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

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

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

1 回答

  • 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目录,您可以做的一件事是使用指向绝对路径的配置和架构参数,但这可能会导致配置混乱,除非您完全了解自己在做什么 .

相关问题