函式名: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,該函式將返回空陣列。