Hibernate Search - 如果现有数据之前未被索引,则重新创建索引
Hibernate Search - recreate index if existing data was not indexed before
我有一个现有项目,在数据库中有大量数据。我正在将 Hibernate Search 添加到项目中。
由于我希望对现有数据进行索引,因此我想通过
在我的服务启动时开始对其进行索引
fullTextEntityManager.createIndexer().startAndWait()
但我只想执行一次(当现有数据未编入索引时),因为所有以后的数据更改都将同步。
所以我的问题是:Hibernate Search 是否有任何方法来检查是否已经为实体创建了索引?我需要它来了解我是否必须重建所有索引(在第一次启动时)或不需要(例如,当我的应用程序在升级后启动时,我不必清除所有索引并重新创建它们)以避免长时间每次重新启动应用程序时启动。
Hibernate Search 无法安全可靠地检测到这一点,因此我们有意将其排除在外。
最好自己添加一个方法来触发它,这样你就可以明确地控制它; MassIndexer 也可以通过 JMX 轻松调用。
我通常在 "admin" 控制面板视图中添加一个 "rebuild indexes" 按钮;这总是有用的 ;-)
我有一个现有项目,在数据库中有大量数据。我正在将 Hibernate Search 添加到项目中。 由于我希望对现有数据进行索引,因此我想通过
在我的服务启动时开始对其进行索引fullTextEntityManager.createIndexer().startAndWait()
但我只想执行一次(当现有数据未编入索引时),因为所有以后的数据更改都将同步。
所以我的问题是:Hibernate Search 是否有任何方法来检查是否已经为实体创建了索引?我需要它来了解我是否必须重建所有索引(在第一次启动时)或不需要(例如,当我的应用程序在升级后启动时,我不必清除所有索引并重新创建它们)以避免长时间每次重新启动应用程序时启动。
Hibernate Search 无法安全可靠地检测到这一点,因此我们有意将其排除在外。
最好自己添加一个方法来触发它,这样你就可以明确地控制它; MassIndexer 也可以通过 JMX 轻松调用。
我通常在 "admin" 控制面板视图中添加一个 "rebuild indexes" 按钮;这总是有用的 ;-)