Пример #1
0
 /**
  */
 public function prepareViewFacets($result, $request)
 {
     $facets = $result->getFacets();
     $facetLimit = Opus_Search_Config::getFacetLimits();
     $facetArray = array();
     $selectedFacets = array();
     $facetNumberContainer = array();
     $showFacetExtender = array();
     foreach ($facets as $key => $facet) {
         $showFacetExtender[$key] = $facetLimit[$key] <= sizeof($facet);
         $this->getLogger()->debug("found {$key} facet in search results");
         $facetNumberContainer[$key] = sizeof($facet);
         $facetValue = $request->getParam($key . 'fq', '');
         if ($facetValue !== '') {
             $selectedFacets[$key] = $facetValue;
             $showFacetExtender[$key] = false;
         }
         if (count($facets[$key]) > 1 || $facetValue !== '') {
             $facetArray[$key] = $facet;
         }
     }
     // Hide institutes facet if collection does not exist or is hidden
     $institutes = Opus_CollectionRole::fetchByName('institutes');
     if (is_null($institutes) || !$institutes->getVisible()) {
         unset($facetArray['institute']);
     }
     $this->_facets = $facetArray;
     $this->_selectedFacets = $selectedFacets;
     $this->_facetNumberContainer = $facetNumberContainer;
     $this->_showFacetExtender = $showFacetExtender;
 }
Пример #2
0
 /**
  *
  * @param boolean $export
  */
 public function __construct($logger, $export = false)
 {
     $this->_logger = $logger;
     $this->_filterFields = array();
     $filters = Opus_Search_Config::getFacetFields();
     if (!count($filters)) {
         $this->_logger->debug('key searchengine.solr.facets is not present in config. skipping filter queries');
     } else {
         $this->_logger->debug('searchengine.solr.facets is set to ' . implode(',', $filters));
     }
     foreach ($filters as $filterfield) {
         if ($filterfield == 'year_inverted') {
             $filterfield = 'year';
         }
         array_push($this->_filterFields, trim($filterfield));
     }
     $this->_searchFields = array('author', 'title', 'persons', 'referee', 'abstract', 'fulltext', 'year');
     $this->_export = $export;
 }
Пример #3
0
 public function testGetFacetLimitsFromConfigWithYearInverted()
 {
     $model = new Solrsearch_Model_FacetMenu();
     $config = Zend_Registry::get('Zend_Config');
     if (isset($config->searchengine->solr->facets)) {
         $config->searchengine->solr->facets = 'year_inverted,doctype,author_facet,language,has_fulltext,belongs_to_bibliography,subject,institute';
     } else {
         $testConfig = new Zend_Config(array('searchengine' => array('solr' => array('facets' => 'year_inverted,doctype,author_facet,language,has_fulltext,belongs_to_bibliography,subject,institute'))), true);
         // Include the above made configuration changes in the application configuration.
         $testConfig->merge($config);
     }
     $config->merge(new Zend_Config(array('searchengine' => array('solr' => array('facetlimit' => array('author_facet' => 3, 'year_inverted' => 15))))));
     $facetLimits = Opus_Search_Config::getFacetLimits();
     $this->assertEquals(3, $facetLimits['author_facet']);
     $this->assertEquals(15, $facetLimits['year']);
     $this->assertEquals(10, $facetLimits['doctype']);
     $this->assertEquals(10, $facetLimits['has_fulltext']);
     $this->assertEquals(10, $facetLimits['belongs_to_bibliography']);
     $this->assertEquals(10, $facetLimits['subject']);
     $this->assertEquals(10, $facetLimits['institute']);
 }
 public function resetSearch()
 {
     Opus_Search_Config::dropCached();
     Opus_Search_Service::dropCached();
 }