/**
  * @param $id
  * @param $assignments
  * @param $arguments
  * @return mixed
  */
 protected function getTheRecordSpecified($id, $assignments)
 {
     $connection = $this->getConnection();
     $this->createQuery();
     $escapedID = $this->query->getHelper()->escapeTerm($id);
     $this->query->setQuery('id:' . $escapedID);
     try {
         /** @var \Solarium\Core\Query\Result\ResultInterface $selectResults */
         $selectResults = $connection->execute($this->query);
         if (count($selectResults) > 0) {
             $assignments['results'] = $selectResults;
             $resultSet = $selectResults->getDocuments();
             $assignments['document'] = $resultSet[0];
         } else {
             $message = sprintf('find: »detail« action query for id »%d« returned no results.', $id);
             LoggerUtility::logError($message, ['arguments' => $this->getRequestArguments()]);
         }
     } catch (HttpException $exception) {
         $message = 'find: Solr Exception (Timeout?)';
         LoggerUtility::logError($message, ['arguments' => $this->getRequestArguments(), 'exception' => LoggerUtility::exceptionToArray($exception)]);
     }
     return $assignments;
 }
 /**
  * @param \Solarium\QueryType\Select\Query\Query $select
  * @return string
  */
 public function getSolrQueryStr($select)
 {
     foreach ($this->krits as $krit) {
         switch ($krit["typ"]) {
             case "betreff":
                 $helper = $select->getHelper();
                 return "antrag_betreff:" . $helper->escapeTerm($krit["suchbegriff"]);
                 break;
             case "antrag_typ":
                 return "antrag_typ:" . $krit["suchbegriff"];
                 break;
             case "antrag_wahlperiode":
                 return "antrag_wahlperiode:" . $krit["suchbegriff"];
                 break;
             case "ba":
                 return "dokument_bas:" . $krit["ba_nr"];
                 break;
             case "volltext":
                 return $krit["suchbegriff"];
                 break;
             case "geo":
                 $helper = $select->getHelper();
                 return $helper->geofilt("geo", $krit["lat"], $krit["lng"], $krit["radius"] / 1000);
                 break;
             case "referat":
                 return "referat_id:" . $krit["referat_id"];
                 break;
             case "antrag_nr":
                 return "*" . $krit["antrag_nr"] . "*";
                 break;
         }
     }
     return "";
 }
 /**
  * Returns a Solarium query helper object.
  *
  * @param \Solarium\QueryType\Select\Query\Query|null $query
  *   (optional) A Solarium query object.
  *
  * @return \Solarium\Core\Query\Helper
  *   A Solarium query helper.
  */
 protected function getQueryHelper(Query $query = NULL)
 {
     if (!static::$queryHelper) {
         if ($query) {
             static::$queryHelper = $query->getHelper();
         } else {
             static::$queryHelper = new Helper();
         }
     }
     return static::$queryHelper;
 }