Esempio n. 1
0
 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);
     }
 }