如何修复:创建 SolrCore 时出错 'gettingstarted':无法创建核心

How to fix: Error CREATEing SolrCore 'gettingstarted': Unable to create core

当我尝试在 solr 中创建新核心时遇到此错误。

root@ubuntu:/opt/solr# bin/solr create -c gettingstarted -n data_driven_schema_configs

Setup new core instance directory:
/var/solr/data/gettingstarted

Creating new core 'gettingstarted' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted

Failed to create core 'gettingstarted' due to: Error CREATEing SolrCore 'gettingstarted': Unable to create core [gettingstarted] Caused by: /var/solr/data/gettingstarted/data

此外,如果我尝试创建替代方法,它会给我同样的错误:

root@ubuntu:/opt/solr# bin/solr create -c mycore

Setup new core instance directory:
/var/solr/data/mycore

Creating new core 'mycore' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=mycore&instanceDir=mycore

Failed to create core 'mycore' due to: Error CREATEing SolrCore 'mycore': Unable to create core [mycore] Caused by: /var/solr/data/mycore/data

在浏览器中,当我尝试访问 solr 管理面板时,它会显示如下通知:

SolrCore Initialization Failures

opt/solr/example/exampledocs/*.xml: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: /var/solr/data/opt/solr/example/exampledocs/*.xml/data 

附上快照。

您可以通过以下步骤解决问题:

  1. 检查是否存在正确文件的目录:

    • /opt/solr/server/gettingstarted/conf/solrconfig.xml
    • /opt/solr/server/gettingstarted/conf/schema.xml
    • /opt/solr/server/gettingstarted/数据
  2. 然后打开 Core Admin,"Add new core",进入右边directory/file 命名并将核心添加到系统中。实际上它会给你一个核心已经存在的错误信息。刷新管理网页 浏览器,它现在会自动加载这个核心,没有任何 错误信息。

在我看来可能是用户权限问题。您似乎 运行 以 root 身份执行命令,但有些工作是由 Solr 服务器完成的。是否有可能服务器进程 运行 的用户无权访问错误消息中提到的目录。

因为它可能会帮助任何人遇到同样的问题,所以它确实是由 permission issues 在使用 root 时引起的。当以 root 身份执行命令时,脚本不会快速终止,而是在失败之前创建一段核心定义。

所以首先清理破碎的核心:

bin/solr delete -c mycore

确保您的 mycore 核心的 /var/solr/data 下没有任何文件夹。

接下来创建核心作为 solr 用户

su -u solr -c "/opt/solr/bin/solr create_core -c mycore"

这次应该会成功

不要 运行 solr 脚本作为 root 用户(它是 not recommended)。您应该 运行 作为 solr 用户,例如:

sudo -u solr ./bin/solr create -c mycore

我发现这是解决方案:

sudo su - solr -c "/opt/solr/bin/solr create -c mycore"

这里有更多信息:https://www.howtoforge.com/tutorial/how-to-install-and-configure-solr-on-ubuntu-1604/

这对我来说很正常...以 solr linux 用户身份创建核心。

sudo su - solr -c "/opt/solr/bin/solr create -c mycol1 -n data_driven_schema_configs"

请注意,在创建核心之前,您应该创建一个同名目录:

C:\...\solr-8.3.11\server\solr

然后从 examplesdefault 文件夹.[=15= 复制 conf 文件夹]

我在 windows 中遇到了同样的问题 我从 examples:

复制了 conf 文件夹

C:\...\solr-8.3.1\example\files

到这里:

C:\...\solr-8.3.1\server\solr\new_core

我的问题解决了。

您还可以从 默认文件夹 复制 conf 文件夹:

C:\...\solr-8.3.11\server\solr\configsets_default

这里的 new_core 是我添加的新内核的名称。

所以也许在 Ubuntu 中处理此文件夹可以解决您的问题。

下一个解决方案: 在使用命令提示符或终端的 运行 solr 之后,使用此命令创建核心:

solr create -c new_core_name