我正在尝试为我们的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的方法,以便它可以用于创建具有该配置的新内核(或者使用当前位置创建这些内核的方式)。
架构
或多或少都是一样的答案 0 :(得分:10)
这很有用。在命令行上运行并可在管理控制台中查看:
solr create -c(核心或集合的名称)
有关详细信息,请参阅README.txt。
答案 1 :(得分:4)
就我而言,我利用了4.4+中的Core Discovery功能,而不是使用管理网络界面创建核心。
这只涉及从collection1
目录(我通常用作起点)复制示例examples
文件夹。
然后我必须确保在我的新核心的根目录中有name=<new core name>
内有core.properties。 Solr自动检测到新核心并允许我毫不费力地使用它。
这避免了将solrconfig.xml
和schema.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