/**
  * @param Entity|IIndexable $entity
  */
 public function indexEntity(Entity $entity)
 {
     $data = $entity->getIndexData();
     if ($data !== FALSE) {
         $this->es->addToIndex($entity->getShortEntityName(), (int) $entity->id, $data);
     }
 }
 public function registerEvents(Events $events)
 {
     $events->addCallbackListener($events::PERSIST_AFTER, function (EventArguments $args) {
         /** @var IIndexable|Entity $e */
         $e = $args->entity;
         $data = $e->getIndexData();
         if ($data === FALSE) {
             try {
                 $this->elastic->removeFromIndex($this->getShortEntityName(), (int) $e->id);
             } catch (Missing404Exception $e) {
                 // entity was yet not in index
             }
         } else {
             $this->elastic->addToIndex($this->getShortEntityName(), (int) $e->id, $data);
         }
     });
 }