Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2/弹性束_Symfony_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Foselasticabundle - Fatal编程技术网 elasticsearch,foselasticabundle,Symfony,elasticsearch,Foselasticabundle" /> elasticsearch,foselasticabundle,Symfony,elasticsearch,Foselasticabundle" />

Symfony2/弹性束

Symfony2/弹性束,symfony,elasticsearch,foselasticabundle,Symfony,elasticsearch,Foselasticabundle,我刚刚用elastica bundle安装了一个symfony2项目,elasticsearch正在运行。 我已经配置了fos_elastica,这样我的实体示例车将在elasticsearch中自动重新编制索引。 一切正常 以下是它的工作原理: 在我的控制器中 $em->flush(); 然后,当实体在数据库中持久化时,它调用 $this->dispatchPostFlushEvent(); 现在在ContainerWareeventManager.php中,我可以找到disp

我刚刚用elastica bundle安装了一个symfony2项目,elasticsearch正在运行。 我已经配置了fos_elastica,这样我的实体示例车将在elasticsearch中自动重新编制索引。 一切正常

以下是它的工作原理:

在我的控制器中

$em->flush();
然后,当实体在数据库中持久化时,它调用

$this->dispatchPostFlushEvent();
现在在ContainerWareeventManager.php中,我可以找到dispatchEvent方法,它将在dispatchEvent中的弹性搜索中引发一个事件来重新索引实体

我希望做的是手动而不是自动引发此事件

我是说这种用法:

$em->flush();
$em->flushAndReindexEs();

有人认为这样做很容易吗

我继续调查这次事件

任何帮助都是有帮助的; Thx

FOSElasticaBundle实现了一个事件侦听器,该侦听器在postFlush事件时发送更新

因此,您需要实现自己的事件侦听器,它将收集有关计划持久化的信息,更新或删除实体您可以以FOS\ElasticaBundle\Doctrine\Listener为例,也可以查看事件侦听器,它将捕获您自己手动触发的事件,并通过FOS\ElasticaBundle\Persister\ObjectPersister向ES发送更新

你也可以看看

$em->flush()
$this->raiseEvent('reindex-elastic-entity', $em, array('title' => 'string')