/** * Creates a Solr document with the basic / core fields set already. * * @param Item $item The item to index * @param array $itemRecord The record to use to build the base document * @return Apache_Solr_Document A basic Solr document */ protected function getBaseDocument(Item $item, array $itemRecord) { $site = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Solr\\Site', $item->getRootPageUid()); $document = GeneralUtility::makeInstance('Apache_Solr_Document'); /* @var $document Apache_Solr_Document */ // required fields $document->setField('id', Util::getDocumentId($item->getType(), $itemRecord['pid'], $itemRecord['uid'])); $document->setField('type', $item->getType()); $document->setField('appKey', 'EXT:solr'); // site, siteHash $document->setField('site', $site->getDomain()); $document->setField('siteHash', $site->getSiteHash()); // uid, pid $document->setField('uid', $itemRecord['uid']); $document->setField('pid', $itemRecord['pid']); // created, changed if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['crdate'])) { $document->setField('created', $itemRecord[$GLOBALS['TCA'][$item->getType()]['ctrl']['crdate']]); } if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['tstamp'])) { $document->setField('changed', $itemRecord[$GLOBALS['TCA'][$item->getType()]['ctrl']['tstamp']]); } // access, endtime $document->setField('access', $this->getAccessRootline($item)); if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['endtime']) && $itemRecord[$GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['endtime']] != 0) { $document->setField('endtime', $itemRecord[$GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['endtime']]); } return $document; }