/** * @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; }