Beispiel #1
0
 /**
  * Creates a Solr document with the basic / core fields set already.
  *
  * @param Tx_Solr_IndexQueue_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(Tx_Solr_IndexQueue_Item $item, array $itemRecord)
 {
     $site = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Solr_Site', $item->getRootPageUid());
     $document = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Apache_Solr_Document');
     /* @var $document Apache_Solr_Document */
     // required fields
     $document->setField('id', Tx_Solr_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;
 }