SolrClient::setResponseWriter()
(PECL solr >= 0.9.11)
Sets the response writer used to prepare the response from Solr
说明
public SolrClient::setResponseWriter(string $responseWriter): void
Sets the response writer used to prepare the response from Solr
参数
- $responseWriter
One of the following:
- json
- phps
- xml
返回值
没有返回值。
范例
Example #1 SolrClient::setResponseWriter() example
<?php // This is my custom class for objects class SolrClass { public $_properties = array(); public function __get($property_name) { if (property_exists($this, $property_name)) { return $this->$property_name; } else if (isset($_properties[$property_name])) { return $_properties[$property_name]; } return null; } } $options = array ( 'hostname' => 'localhost', 'port' => 8983, 'path' => '/solr/core1' ); $client = new SolrClient($options); $client->setResponseWriter("json"); //$response = $client->ping(); $query = new SolrQuery(); $query->setQuery("*:*"); $query->set("objectClassName", "SolrClass"); $query->set("objectPropertiesStorageMode", 1); // 0 for independent properties, 1 for combined try { $response = $client->query($query); $resp = $response->getResponse(); print_r($response); print_r($resp); } catch (Exception $e) { print_r($e); } ?>
i found that 'php' is also supported. <?php $solr_server = array ( 'hostname' => $solr_hostname, 'port' => $solr_port, 'path' => $solr_path, ); $solr_client = new SolrClient($solr_server); $solr_response_writer = 'php'; // "wt" $solr_client->setResponseWriter($solr_response_writer); $solr_response = new SolrObject(); $solr_query = new SolrQuery(); $solr_query->setQuery($solr_query_string); // "q" try { $query_response = $solr_client->query($solr_query); $solr_response = $query_response->getResponse(); return ''; } catch (Exception $e) { return ($e); } ?> php_error.log keeps on saying: [12-Aug-2015 12:34:56 Asia/Hong_Kong] PHP Warning: SolrClient::setResponseWriter(): Unsupported response writer php. This value will be ignored in C:\www\...\solr.php on line 21 but the returned data is good as expected: <?php $html .= '<table cellSpacing="1" cellPadding="1" border="1">'; $html .= '<tr>'; $html .= '<td>id</td>'; $html .= '<td>title</td>'; $html .= '<td>score</td>'; $html .= '</tr>'; for ($i_solr = 0; $i_solr <= ($solr_rows - 1); $i_solr++) { $html .= '<tr>'; $html .= '<td>' . $solr_response['response']['docs'][$i_solr]['id'] . '</td>'; $html .= '<td>' . $solr_response['response']['docs'][$i_solr]['title'][0] . '</td>'; $html .= '<td>' . $solr_response['response']['docs'][$i_solr]['score'] . '</td>'; $html .= '</tr>'; } $html .= '</table>'; echo $html; ?>