0

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

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

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

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

4

2 回答 2

0

如果您正在镜像更改,则不需要 bulkIndexOnStartup。

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

于 2010-11-24T21:21:07.897 回答
0

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

于 2011-01-18T23:32:52.173 回答