如何创建 Solr 6 核?

How to create Solr 6 cores?

我已经在 Digital Ocean ubuntu 实例上安装了 Solr 6:

install_solr_service.sh solr-6.1.0.tgz

并验证 Solr 是 运行ning。但是,我无法通过 UI 或命令行创建任何核心。我尝试了各种不同的排列:

sudo ./solr create -c netest

包括

sudo ./solr create -c netest -d /opt/solr/server/solr/configsets/basic_configs/conf/

但它总是给我:

ERROR: Error CREATEing SolrCore 'netest': Unable to create core [netest] Caused by: /var/solr/data/netest/data

如果我提前创建目录:

sudo mkdir /var/solr/data/netest/
sudo mkdir /var/solr/data/netest/data
sudo chown -R solr:solr /var/solr/data

当我重新运行创建命令时,我得到:

ERROR: Error CREATEing SolrCore 'netest': Unable to create core [netest] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/var/solr/data/netest'

如果我将 solrconfig.xml 复制到目录中并再次 运行 命令,我会得到:

ERROR: Error CREATEing SolrCore 'netest': Unable to create core [netest] Caused by: Can't find resource 'schema.xml' in classpath or '/var/solr/data/netest'

我被困在这个阶段,因为 google 没有帮助我找到从哪里获取或创建 schema.xml 文件。

有人可以帮忙吗?

试试这个方法

导航到 Solr/solr-6.1.0/server/solr/

创建新文件夹并将其命名为 netest

Solr/solr-6.1.0/server/solr/configsets/basic_configs/ 复制 conf 文件夹并将其粘贴到 netest 文件夹中。

现在您在终端上输入此命令 sudo ./solr create -c netest

这将使用 conf 文件夹中的配置文件创建名为 netest 的新内核

希望这对您有所帮助

如果您在核心目录中创建了 schema.xmlsolrconfig.xml,请尝试从核心管理页面添加核心,它应该可以工作。

您不应使用 root,而是 solr 用户权限来创建 Solr 核心,因为数据文件夹(例如 /var/solr/data)通常归 solr 所有。其次请注意,提供的 solr shell 脚本仍在使用 Solr Admin UI 作为管理 Solr 的主要起点。

所以请尝试以下命令:

cd /opt/solr
sudo -u solr ./bin/solr create -c netest
sudo ls -la /var/solr/data

如有任何其他问题,请仔细检查:

  • Solr 可通过管理员访问 UI(例如 curl -s http://localhost:8983/solr/links)。
  • jar 命令可用(它在您的 PATH 中)。
  • 对于语法,运行:bin/solr --help 在您的 Solr HOME 文件夹中。

要进行故障排除,请检查您的 Solr 日志(例如 /var/solr/logs/solr.log)。

相关:SOLR-7826: Permission issues when creating cores with bin/solr as root user.

它的权限问题,所以尝试使用下面的命令创建一个新的核心,它会成功!

sudo -u solr bin/solr create -c demo

./solr create_core -c netest -d basic_configs

su - solr -c "/opt/solr/bin/solr create -c testcore -n 
data_driven_schema_configs"

这个命令对我在 solr 6.60 中使用 sudo 用户有效。