Код состояния обычно соответствует возвращаемому HTTP-коду, за исключением того, что 200 возвращается как 0. Это реализовано в виде числового кода, когда SolrException выдается внутренне в Solr. Когда это было задано в списке рассылки solr-user некоторое время назад, следующий ответ от Эрика Хэтчера был получен :
Есть ли ссылка на этот статус-код?
Просто исходный код. SolrCore # setResponseHeaderValues, который преимущественно использует коды, указанные в SolrException:
BAD_REQUEST( 400 ),
UNAUTHORIZED( 401 ), // not currently used
FORBIDDEN( 403 ),
NOT_FOUND( 404 ),
SERVER_ERROR( 500 ),
SERVICE_UNAVAILABLE( 503 ),
UNKNOWN(0);
Текущую версию SolrCore можно увидеть на Github .
Вы, вероятно, можете предположить, что код ошибки http большую часть времени будет соответствовать значению status
, но, безусловно, есть исключения - например, если HTTP-запрос вообще никогда не достигает Solr, а ошибка просто возвращается Jetty (если установка сильно затруднена, или, возможно, если вы попытаетесь получить доступ к чему-то другому, чем /solr).
В вашем примере запрос может быть совершенно нормальным и нормальным, даже если действие ничего не вызывает при импорте данных в коллекцию. Если ваш запрос на импорт заканчивается в 0 документах, это не является ошибкой - и если импорт начался (импорт обычно является асинхронной операцией), это все еще допустимый и нормальный запрос, даже если конечный результат позже недопустим .
Вероятно, лучше попытаться понять, почему ваш импорт не удается (и использовать для этого отдельный вопрос со всеми необходимыми подробностями о том, как вы пытаетесь индексировать, что говорят любые ошибки в журнале (вы можете настроить журнал уровень в разделе «Вход в веб-интерфейс») и ожидаемый результат) вместо просмотра поля status
в ответе.