Java 我们可以只为初始设置创建一次Lucene索引吗?

Java 我们可以只为初始设置创建一次Lucene索引吗?,java,hibernate,lucene,hibernate-search,Java,Hibernate,Lucene,Hibernate Search,我是Hibernate搜索的新手。根据文件 直到现在我才知道,我们可以通过编程方式构建lucene索引,如下所示:(如果我错了,请纠正我) 但是,如果有任何方法(而且可能)在初始设置时只创建一次索引,那我会感到惊讶。如果应用程序启动时使用的是空数据库(初始),则无需构建索引。 重新启动应用程序时,索引(默认情况下)存储在文件系统上,因此无需重建索引 只有当您丢失索引(磁盘崩溃?)时,当您更新Hibernate搜索或Lucene版本时,当您恢复不同的数据库备份时,或者当您更改实体的映射时,才能使

我是
Hibernate搜索的新手。根据文件

直到现在我才知道,我们可以通过编程方式构建lucene索引,如下所示:(如果我错了,请纠正我)


但是,如果有任何方法(而且可能)在初始设置时只创建一次索引,那我会感到惊讶。

如果应用程序启动时使用的是空数据库(初始),则无需构建索引。 重新启动应用程序时,索引(默认情况下)存储在文件系统上,因此无需重建索引

只有当您丢失索引(磁盘崩溃?)时,当您更新Hibernate搜索或Lucene版本时,当您恢复不同的数据库备份时,或者当您更改实体的映射时,才能使用此操作:它无法自动检测何时应该运行,因此您应该显式调用该方法


MassIndexer还可以作为JMX操作使用,这使得管理员无需编写代码即可调用它,或者在某些情况下,我只是在web应用程序中创建了一个“管理面板”,以便人们在需要时进行操作。

如果您使用空数据库启动应用程序(最初)没有必要建立索引。 重新启动应用程序时,索引(默认情况下)存储在文件系统上,因此无需重建索引

只有当您丢失索引(磁盘崩溃?)时,当您更新Hibernate搜索或Lucene版本时,当您恢复不同的数据库备份时,或者当您更改实体的映射时,才能使用此操作:它无法自动检测何时应该运行,因此您应该显式调用该方法


MassIndexer还可以作为JMX操作使用,这使得管理员无需编写代码即可调用它,或者在某些情况下,我只是在web应用程序中创建了一个“管理面板”,以便人们在需要时进行操作。

如果您使用空数据库启动应用程序(最初)没有必要建立索引。 重新启动应用程序时,索引(默认情况下)存储在文件系统上,因此无需重建索引

只有当您丢失索引(磁盘崩溃?)时,当您更新Hibernate搜索或Lucene版本时,当您恢复不同的数据库备份时,或者当您更改实体的映射时,才能使用此操作:它无法自动检测何时应该运行,因此您应该显式调用该方法


MassIndexer还可以作为JMX操作使用,这使得管理员无需编写代码即可调用它,或者在某些情况下,我只是在web应用程序中创建了一个“管理面板”,以便人们在需要时进行操作。

如果您使用空数据库启动应用程序(最初)没有必要建立索引。 重新启动应用程序时,索引(默认情况下)存储在文件系统上,因此无需重建索引

只有当您丢失索引(磁盘崩溃?)时,当您更新Hibernate搜索或Lucene版本时,当您恢复不同的数据库备份时,或者当您更改实体的映射时,才能使用此操作:它无法自动检测何时应该运行,因此您应该显式调用该方法

MassIndexer还可以作为JMX操作使用,这使得管理员无需编写代码即可调用它,或者在某些情况下,我只是在web应用程序中创建了一个“管理面板”,以便人们在需要时进行操作

FullTextSession fullTextSession = Search.getFullTextSession(session);
fullTextSession.createIndexer().startAndWait();