Я использую клиентский пакет Solr docker image solr:8
и PHP solarium\solarium
v5. Я пытаюсь создать ядро со следующим кодом:
$config = [
'endpoint' => [
'default' => [
'host' => 'solr',
'path' => '/',
'core' => 'test',
'port' => '8983'
]
]
];
$client = new Solarium\Client($config);
$coreName = 'test';
$coreAdminQuery = $client->createCoreAdmin();
$createAction = $coreAdminQuery->createCreate();
$createAction->setCore($coreName);
//$createAction->setInstanceDir($coreName);
//$createAction->setConfigSet('_default');
//$createAction->setConfigSet('data_driven_schema_configs');
$coreAdminQuery->setAction($createAction);
$response = $client->coreAdmin($coreAdminQuery);
Сбой при следующем выводе на консоль:
Fatal error: Uncaught Solarium\Exception\HttpException: Solr HTTP error: OK (400)
{
"responseHeader":{
"status":400,
"QTime":3},
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.core.SolrResourceNotFoundException"],
"msg":"Error CREATEing SolrCore 'test': Unable to create core [test] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/var/solr/data/test'",
"code":400}}
in /web/vendor/solarium/solarium/src/Core/Query/Result/Result.php on line 59
Solarium\Exception\HttpException: Solr HTTP error: OK (400)
{
"responseHeader":{
"status":400,
"QTime":3},
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.core.SolrResourceNotFoundException"],
"msg":"Error CREATEing SolrCore 'test': Unable to create core [test] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/var/solr/data/test'",
"code":400}}
in /web/vendor/solarium/solarium/src/Core/Query/Result/Result.php on line 59
Call Stack:
0.0003 394440 1. {main}() /web/test-solr.php:0
0.0608 1472360 2. Solarium\Client->coreAdmin() /web/test-solr.php:27
0.0608 1472360 3. Solarium\Client->execute() /web/vendor/solarium/solarium/src/Core/Client/Client.php:1084
0.0906 1695136 4. Solarium\Client->createResult() /web/vendor/solarium/solarium/src/Core/Client/Client.php:841
0.0951 1735984 5. Solarium\QueryType\Server\CoreAdmin\Result\Result->__construct() /web/vendor/solarium/solarium/src/Core/Client/Client.php:809
Process finished with exit code 255
Любая закомментированная строка не помогает, если uncommented.
Похоже, ядро создано, но на самом деле не может быть инициализировано, потому что, если я запускаю следующую команду CLI, она показывает следующее:
solr@fac0f2c3eb92:/opt/solr-8.5.0$ solr create -c test -n data_driven_schema_configs
ERROR:
Core 'test' already exists!
Checked core existence using Core API command:
http://localhost:8983/solr/admin/cores?action=STATUS&core=test
Если я перехожу по ссылке, она показывает следующее:
{
"responseHeader":{
"status":0,
"QTime":1},
"initFailures":{"test":"org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core test: Error loading solr config from /var/solr/data/test/conf/solrconfig.xml"},
"status":{
"test":{}}}
В то же время отлично работает следующая команда CLI:
solr@fac0f2c3eb92:/opt/solr-8.5.0$ solr create -c test2 -n data_driven_schema_configs
Created new core 'test2'
Ядра, созданные CLI, работают без проблем с настройкой:
http://localhost:8983/solr/admin/cores?action=STATUS&core=test2
:
{
"responseHeader":{
"status":0,
"QTime":0},
"initFailures":{},
"status":{
"test2":{
"name":"test2",
"instanceDir":"/var/solr/data/test2",
"dataDir":"/var/solr/data/test2/data/",
"config":"solrconfig.xml",
"schema":"managed-schema",
"startTime":"2020-04-15T02:32:34.063Z",
"uptime":48543,
"index":{
"numDocs":0,
"maxDoc":0,
"deletedDocs":0,
"indexHeapUsageBytes":0,
"version":2,
"segmentCount":0,
"current":true,
"hasDeletions":false,
"directory":"org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(MMapDirectory@/var/solr/data/test2/data/index lockFactory=org.apache.lucene.store.NativeFSLockFactory@4572a13f; maxCacheMB=48.0 maxMergeSizeMB=4.0)",
"segmentsFile":"segments_1",
"segmentsFileSizeInBytes":69,
"userData":{},
"sizeInBytes":69,
"size":"69 bytes"}}}}
Что я делаю не так и как программно создать ядро?