我们只能在初始设置时创建一次Lucene索引吗?

时间:2014-07-09 04:45:34

标签: java hibernate lucene hibernate-search

我是Hibernate Search的新手。根据文件

  

By default, every time an object is inserted, updated or deleted through Hibernate, Hibernate Search updates the according Lucene index.

直到现在我才开始学习,我知道我们可以通过编程方式建立lucene索引:(如果我错了,请纠正我)

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

但令我惊讶的是,如果有任何方式(并且可能)在初始设置时仅创建一次索引。

1 个答案:

答案 0 :(得分:3)

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

此操作仅在丢失索引(磁盘崩溃?),更新Hibernate Search或Lucene版本,还原其他数据库备份或更改实体映射时使用:它不能自动检测它应该运行的时间,因此你应该明确地调用该方法。

MassIndexer 也可以作为JMX操作使用,这使管理员无需编写代码即可轻松调用,或者在某些情况下,我只是在我的“管理面板”中创建了一个“管理面板”。网络应用程序供人们在需要时操作。