创建核心时Solr(4.4+)solrconfig.xml位置

时间:2013-07-25 13:30:53

标签: solr

我正在尝试为我们的web应用程序设置多核solr服务器,但是我在通过coreadmin服务创建新核心时遇到了麻烦。

我正在使用Solr-4.4,因为4.3遇到了在solr.xml中持久保存核心的问题(未保留datadir)所以我使用的是新的Solr.xml配置4.4 and beyond

我的solr.xml目前看起来像:

<solr>
  <str name="coreRootDirectory">default-instance/cores/</str>
</solr>

solrconfig.xml位于(solrhome)/default-instance/conf/solrconfig.xml

尝试使用网址

创建核心时
http:/example.org/solr/admin/cores?action=CREATE&name=test-name&schema=schema-test.xml&loadOnStartup=false

给我错误:

  

错误创建SolrCore'test-name':无法创建core:test-name   引发者:无法在类路径中找到资源'solrconfig.xml'或   'default-instance / cores / test-name / conf /',cwd = / var / lib / tomcat7

以下似乎有效:

http:/example.org/solr/admin/cores?action=CREATE&name=test-name&schema=schema-test.xml&loadOnStartup=false&config=/absolute/file/path/to/solrconfig.xml

问题是这似乎只适用于绝对路径(或者可能是来自/ var / lib / tomcat7的相对路径),这不是一个可行的解决方案。

我正在寻找的是一种放置solrconfig.xml的方法,以便它可以用于创建具有该配置的新内核(或者使用当前位置创建这些内核的方式)。

架构

或多或少都是一样的

4 个答案:

答案 0 :(得分:10)

这很有用。在命令行上运行并可在管理控制台中查看:

solr create -c(核心或集合的名称)

有关详细信息,请参阅README.txt。

答案 1 :(得分:4)

就我而言,我利用了4.4+中的Core Discovery功能,而不是使用管理网络界面创建核心。

这只涉及从collection1目录(我通常用作起点)复制示例examples文件夹。

然后我必须确保在我的新核心的根目录中有name=<new core name>内有core.properties。 Solr自动检测到新核心并允许我毫不费力地使用它。

这避免了将solrconfig.xmlschema.xml复制到任何特殊位置的麻烦。

答案 2 :(得分:2)

我遇到了同样的问题:solrconfig.xml不在类路径中。我通过将配置文件模板复制到类路径中来解决它。

所以我查看http://localhost:8983/solr/#/~java-properties以查看solrs类路径定义,然后将模板solrconfig.xml和schema.xml复制到文件夹C:\servers\solr-4.4.0\example\resources中。此外,我复制了所有的停用词......

这个解决方案并不完全令人满意,但它确实有效。添加到类路径的另一个路径也应该有效。我有点惊讶的是,在solr.xml

中无法声明新内核的默认配置

答案 3 :(得分:2)

我推荐这个用例的新配置集。

如果将schema.xml和solrconfig.xml(以及其他配置文件,如停用词等)放在目录$SOLR_HOME/configsets/myConfig/conf中,则可以通过调用以下命令创建一个具有此配置的新核心:

http://solr/admin/cores?action=CREATE&name=mycore&instanceDir=my_instance&configSet=myConfig

请参阅https://cwiki.apache.org/confluence/display/solr/Config+Sets

但是在Solr 4.8之前它们不可用,请参阅https://issues.apache.org/jira/browse/SOLR-4478