函数名:SolrServerException::getInternalInfo()
适用版本:Solr extension 2.3.0 及以上版本
用法: SolrServerException::getInternalInfo() 函数用于获取 Solr 服务器异常的内部信息。
示例:
try {
// 创建 Solr 客户端
$solrClient = new SolrClient($options);
// 创建查询对象
$query = new SolrQuery();
// 设置查询参数
$query->setQuery('keyword:example');
// 执行查询
$result = $solrClient->query($query);
// 处理查询结果
$response = $result->getResponse();
// 检查响应状态
if ($response->getHttpStatus() == 200) {
// 解析响应结果
$responseBody = json_decode($response->getBody(), true);
// 处理结果...
} else {
// 获取 Solr 服务器异常的内部信息
$internalInfo = $response->getInternalInfo();
// 输出异常信息
echo "Solr 服务器异常:";
echo $internalInfo['http_code'] . " " . $internalInfo['error'];
}
} catch (SolrServerException $e) {
// 获取 Solr 服务器异常的内部信息
$internalInfo = $e->getInternalInfo();
// 输出异常信息
echo "Solr 服务器异常:";
echo $internalInfo['http_code'] . " " . $internalInfo['error'];
}
在上面的示例中,我们首先创建了一个 Solr 客户端对象 $solrClient
,然后创建了一个查询对象 $query
,并设置了查询参数。接下来,我们执行查询并获取响应结果 $response
。
在处理响应结果时,我们首先检查响应状态,如果状态码为 200,表示查询成功,我们可以解析响应结果并进行后续处理。但如果状态码不为 200,说明 Solr 服务器出现异常,我们可以通过调用 $response->getInternalInfo()
方法获取异常的内部信息。
在捕获到 SolrServerException
异常时,我们同样可以通过调用 $e->getInternalInfo()
方法获取异常的内部信息。
请注意,SolrServerException::getInternalInfo()
函数只在 Solr 服务器返回异常时才有意义,如果服务器返回的状态码为 200,该函数将返回空数组。