如何删除旧的Hibernate Search索引

时间:2011-03-28 12:53:23

标签: indexing hibernate-search

我在我的网络应用程序中使用Hibernate搜索进行全文搜索。我在管理面板中有创建索引的按钮。我通过这段代码来做到这一点:

                fullTextSession.createIndexer()
                .purgeAllOnStart(true)
                .optimizeAfterPurge(true)
                .optimizeOnFinish(true)
                .batchSizeToLoadObjects( 25 )
                .threadsToLoadObjects( 5 )
                .threadsForSubsequentFetching( 20 )
                .startAndWait();

如果索引构建正确,然后我再次按下此按钮,旧索引文件仍在磁盘上,程序会创建新索引。等等。你能帮我删除旧索引文件吗?

1 个答案:

答案 0 :(得分:3)

我做了类似的事情,但只有当我关闭我的应用程序时才删除索引,然后在启动时再次设置它们。

您是否尝试过调用purgeAll()而不是purgeAllOnStart()?这就是我在app关闭时调用它并且它的工作原理。为了安全起见,在清除索引之后,我实际上也删除了我的索引目录以及它包含在磁盘中的所有文件/文件夹。