6

我正在尝试为我们的 web 应用程序设置一个多核 solr 服务器,但我无法通过 coreadmin 服务创建新核心。

我正在使用 Solr-4.4,因为 4.3 遇到了在 solr.xml 中持久化内核的问题(未保留数据目录)所以我正在使用新的 Solr.xml 配置4.4 及更高版本

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

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

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

尝试使用 url 创建核心时

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

给我错误:

创建 SolrCore 'test-name' 时出错:无法创建核心:test-name 原因:在类路径或 'default-instance/cores/test-name/conf/' 中找不到资源 'solrconfig.xml',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

4 回答 4

10

这行得通。在命令行上运行并在管理控制台中可见:

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

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

于 2015-05-18T00:43:47.737 回答
4

就我而言,我利用了 4.4+ 中的核心发现功能,而不是使用管理 Web 界面创建核心。

这仅涉及collection1examples目录中复制示例文件夹(我通常将其用作起点)。

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

这避免了必须复制solrconfig.xmlschema.xml进入任何特殊位置的麻烦。

于 2014-02-18T11:33:25.327 回答
2

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

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

这个解决方案并不完全令人满意,但它确实有效。向类路径添加另一条路径也应该有效。我有点惊讶,不能在其中声明新内核的默认配置solr.xml

于 2013-09-24T11:16:33.787 回答
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

于 2014-09-25T15:26:49.823 回答