コード例 #1
0
ファイル: TermIndexer.php プロジェクト: luisbrito/Phraseanet
 public function populateIndex(BulkOperation $bulk, array $databoxes)
 {
     foreach ($databoxes as $databox) {
         /** @var databox $databox */
         $databoxId = $databox->get_sbas_id();
         $visitor = new TermVisitor(function ($term) use($bulk, $databoxId) {
             // Path and id are prefixed with a databox identifier to not
             // collide with other databoxes terms
             // Term structure
             $id = sprintf('%s_%s', $databoxId, $term['id']);
             unset($term['id']);
             $term['path'] = sprintf('/%s%s', $databoxId, $term['path']);
             $term['databox_id'] = $databoxId;
             // Index request
             $params = array();
             $params['id'] = $id;
             $params['type'] = self::TYPE_NAME;
             $params['body'] = $term;
             $bulk->index($params, null);
         });
         $document = Helper::thesaurusFromDatabox($databox);
         $this->navigator->walk($document, $visitor);
     }
 }
コード例 #2
0
 private function indexFromFetcher(BulkOperation $bulk, Fetcher $fetcher, array &$submited_records)
 {
     /** @var RecordInterface $record */
     while ($record = $fetcher->fetch()) {
         $op_identifier = $this->getUniqueOperationId($record['id']);
         $params = array();
         $params['id'] = $record['id'];
         unset($record['id']);
         $params['type'] = self::TYPE_NAME;
         $params['body'] = $record;
         $submited_records[$op_identifier] = $record;
         $bulk->index($params, $op_identifier);
     }
 }