Example #1
0
 /**
  * Return fields to be indexed in Solr (an alternative to an XSL transformation)
  *
  * @return string[]
  */
 public function toSolrArray()
 {
     $data = parent::toSolrArray();
     if (isset($data['publishDate'])) {
         $data['main_date_str'] = MetadataUtils::extractYear($data['publishDate']);
         $data['main_date'] = $this->validateDate($this->getPublicationYear() . '-01-01T00:00:00Z');
     }
     if ($range = $this->getPublicationDateRange()) {
         $data['search_sdaterange_mv'][] = $data['publication_sdaterange'] = metadataUtils::dateRangeToNumeric($range);
         $data['search_daterange_mv'][] = $data['publication_daterange'] = metadataUtils::dateRangeToStr($range);
     }
     // language, take only first
     $languages = array_filter(explode(' ', (string) $this->doc->language), function ($value) {
         return preg_match('/^[a-z]{2,3}$/', $value) && $value != 'zxx' && $value != 'und';
     });
     $data['language'] = array_shift($languages);
     $data['source_str_mv'] = $this->source;
     $data['datasource_str_mv'] = $this->source;
     return $data;
 }