/** * * @param Opus_SolrSearch_Query $query * @return string */ private function getParams($query) { if ($query->getSearchType() === Opus_SolrSearch_Query::LATEST_DOCS) { return array('fl' => $query->isReturnIdsOnly() ? 'id' : '* score', 'facet' => 'false', 'sort' => $query->getSortField() . ' ' . $query->getSortOrder()); } if ($query->getSearchType() === Opus_SolrSearch_Query::FACET_ONLY) { return array('fl' => '', 'facet' => 'true', 'facet.field' => $query->getFacetField(), 'facet.mincount' => 1, 'facet.limit' => -1); } if ($query->getSearchType() === Opus_SolrSearch_Query::DOC_ID) { return array('fl' => $query->isReturnIdsOnly() ? 'id' : '* score', 'facet' => 'false'); } $params = array('fl' => $query->isReturnIdsOnly() ? 'id' : '* score', 'facet' => $query->isReturnIdsOnly() ? 'false' : 'true', 'facet.field' => $this->setFacetFieldsFromConfig(), 'facet.mincount' => 1, 'sort' => $query->getSortField() . ' ' . $query->getSortOrder(), 'facet.limit' => isset($this->config->searchengine->solr->globalfacetlimit) ? $this->config->searchengine->solr->globalfacetlimit : 10); $fq = $query->getFilterQueries(); if (!empty($fq)) { $params['fq'] = $fq; } if (isset($this->facetArray)) { $params = array_merge($params, $this->getFacetArray(), $this->getFacetSortsFromConfig()); } else { $params = array_merge($params, $this->getFacetLimitsFromConfig(), $this->getFacetSortsFromConfig()); } return $params; }