Symfony2/弹性束
我刚刚用elastica bundle安装了一个symfony2项目,elasticsearch正在运行。 我已经配置了fos_elastica,这样我的实体示例车将在elasticsearch中自动重新编制索引。 一切正常 以下是它的工作原理: 在我的控制器中Symfony2/弹性束,symfony,elasticsearch,foselasticabundle,Symfony,elasticsearch,Foselasticabundle,我刚刚用elastica bundle安装了一个symfony2项目,elasticsearch正在运行。 我已经配置了fos_elastica,这样我的实体示例车将在elasticsearch中自动重新编制索引。 一切正常 以下是它的工作原理: 在我的控制器中 $em->flush(); 然后,当实体在数据库中持久化时,它调用 $this->dispatchPostFlushEvent(); 现在在ContainerWareeventManager.php中,我可以找到disp
$em->flush();
然后,当实体在数据库中持久化时,它调用
$this->dispatchPostFlushEvent();
现在在ContainerWareeventManager.php中,我可以找到dispatchEvent方法,它将在dispatchEvent中的弹性搜索中引发一个事件来重新索引实体
我希望做的是手动而不是自动引发此事件
我是说这种用法:
$em->flush();
$em->flushAndReindexEs();
或
有人认为这样做很容易吗
我继续调查这次事件
任何帮助都是有帮助的;
ThxFOSElasticaBundle实现了一个事件侦听器,该侦听器在postFlush事件时发送更新
因此,您需要实现自己的事件侦听器,它将收集有关计划持久化的信息,更新或删除实体您可以以FOS\ElasticaBundle\Doctrine\Listener为例,也可以查看事件侦听器,它将捕获您自己手动触发的事件,并通过FOS\ElasticaBundle\Persister\ObjectPersister向ES发送更新
你也可以看看
$em->flush()
$this->raiseEvent('reindex-elastic-entity', $em, array('title' => 'string')