Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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
在Grails Searchable插件中使用mirrorChanges=true时是否需要启动bulkIndexOnStartup?_Grails_Lucene_Gorm_Searchable_Compass Lucene - Fatal编程技术网

在Grails Searchable插件中使用mirrorChanges=true时是否需要启动bulkIndexOnStartup?

在Grails Searchable插件中使用mirrorChanges=true时是否需要启动bulkIndexOnStartup?,grails,lucene,gorm,searchable,compass-lucene,Grails,Lucene,Gorm,Searchable,Compass Lucene,mirrorChanges选项将镜像通过GORM/Hibernate进行的所有更改,因此如果我没有对数据库进行任何外部更改,那么是否需要启动 问题是我们的数据集非常大(>1M行),批量索引器可能需要30分钟以上的时间 当设置为“fork”时,如果通过GORM进行任何更改,lucene将崩溃,因为lucene不是线程安全的,并且GORM事务将在fork批量索引线程运行时尝试更新索引 当设置为true时,应用程序将在这30多分钟内完成初始化。如果要镜像更改,则不需要启动 我们有一个小得多的数据集,所

mirrorChanges选项将镜像通过GORM/Hibernate进行的所有更改,因此如果我没有对数据库进行任何外部更改,那么是否需要启动

问题是我们的数据集非常大(>1M行),批量索引器可能需要30分钟以上的时间

当设置为“fork”时,如果通过GORM进行任何更改,lucene将崩溃,因为lucene不是线程安全的,并且GORM事务将在fork批量索引线程运行时尝试更新索引


当设置为true时,应用程序将在这30多分钟内完成初始化。

如果要镜像更改,则不需要启动


我们有一个小得多的数据集,所以我们实际上在执行更多的维护任务时使用设置为“fork”的选项来执行bulkIndexOnStartup

如果您不修改来自另一个源的数据,则不需要将bulkIndexOnStartup设置为true,特别是如果您将mirrorChanges设置为true。这就是我们在应用程序中处理它的方式。我们有一个控制器操作,它为一个特定的类调用索引器forked,因此我们可以在需要时调用它,例如,如果出于某种原因我们需要直接更新数据库。然后,我们为一个特定类而不是整个类调用索引器,这样,如果我们需要调用它,它就不会花那么长时间。

你真的看到批量索引器在启动时分叉时崩溃了吗?