/**
  * Commits the data to the Solr index, making it available for search.
  *
  * This will perform Solr 'soft commit', which means there is no guarantee that data
  * is actually written to the stable storage, it is only made available for search.
  * Passing true will also write the data to the safe storage, ensuring durability.
  *
  * @param bool $flush
  */
 public function commit($flush = false)
 {
     $payload = $flush ? '<commit/>' : '<commit softCommit="true"/>';
     foreach ($this->endpointResolver->getEndpoints() as $endpointName) {
         $result = $this->client->request('POST', $this->endpointRegistry->getEndpoint($endpointName), '/update', new Message(array('Content-Type' => 'text/xml'), $payload));
         if ($result->headers['status'] !== 200) {
             throw new RuntimeException('Wrong HTTP status received from Solr: ' . $result->headers['status'] . var_export($result, true));
         }
     }
 }
 /**
  * Perform request to client to search for records with query string.
  *
  * @param array $parameters
  *
  * @return mixed
  */
 protected function search(array $parameters)
 {
     $queryString = $this->generateQueryString($parameters);
     $response = $this->client->request('GET', $this->endpointRegistry->getEndpoint($this->endpointResolver->getEntryEndpoint()), "/select?{$queryString}");
     // @todo: Error handling?
     $result = json_decode($response->body);
     if (!isset($result->response)) {
         throw new RuntimeException('->response not set: ' . var_export(array($result, $parameters), true));
     }
     return $result;
 }
 public function __construct(EndpointResolver $endpointResolver)
 {
     $this->hasMainLanguagesEndpoint = $endpointResolver->getMainLanguagesEndpoint() !== null;
 }