Solr HTTP Error «Неизвестное поле» Ошибка с использованием Solarium

Я пытаюсь проиндексировать таблицу из MySQL с помощью Solarium и PHP. Чтобы проверить, у меня есть список стран, и я настроил ядро ​​в Solr, чтобы отразить поля, которые я получаю в запросе. Я получаю сообщение об ошибке при попытке добавить их с помощью Solarium:

Fatal error: Uncaught exception 'Solarium_Client_HttpException' with message 'Solr HTTP error: ERROR: [doc=1] unknown field 'code' (400)' in solariumQuickStart\Library\Solarium\Result.php on line 98
( ! ) Solarium_Client_HttpException: Solr HTTP error: ERROR: [doc=1] unknown field 'code' (400) in solariumQuickStart\Library\Solarium\Result.php on line 98

и вот мой код:

foreach($worldDBRecords as $record)
{

    // create a new document for the data
    $doc = $update->createDocument();
    $doc->code = $record[0];
    $doc->name = $record[1];
    $doc->continent = $record[2];
    $doc->region = $record[3];
    $doc->population = $record[4];
    $update->addDocument($doc);
}

$update->addCommit();
$result = $client->update($update);

Мое подключение к Solr работает, и я определил ядро ​​в своей конфигурации Solarium_Client. У меня также есть поле кода, определенное в моем файле схемы, но оно не распознается. Любая помощь приветствуется. Спасибо.


person Drew    schedule 02.10.2012    source источник
comment
Вы остановили и перезапустили Solr после определения поля кода в файле schema.xml? Изменение не будет отражено, пока Solr не будет перезапущен.   -  person Paige Cook    schedule 03.10.2012
comment
Спасибо за ответ, Пейдж. Я перезапускаю Solr после внесения любых изменений. Поскольку Solarium только отправляет документы в Solr и фактически не читает файл схемы, я считаю, что проблема заключается в моей конфигурации моего ядра Solr. Все еще пытаюсь пройти через это.   -  person Drew    schedule 03.10.2012


Ответы (1)


Я перенастроил ядро ​​Solr, чтобы убедиться, что моя конфигурация правильная. Кроме того, мне не хватало настройки «adapteroptions» в моей конфигурации Solarium, после этого она заработала:

$config = array(
'adapteroptions' => array(
'host' => 'localhost',
'port' => 8983,
'path' => '/solr/',
'core' => 'world'
)
);
person Drew    schedule 10.10.2012