我在我的网络应用程序中使用Hibernate搜索进行全文搜索。我在管理面板中有创建索引的按钮。我通过这段代码来做到这一点:
fullTextSession.createIndexer()
.purgeAllOnStart(true)
.optimizeAfterPurge(true)
.optimizeOnFinish(true)
.batchSizeToLoadObjects( 25 )
.threadsToLoadObjects( 5 )
.threadsForSubsequentFetching( 20 )
.startAndWait();
如果索引构建正确,然后我再次按下此按钮,旧索引文件仍在磁盘上,程序会创建新索引。等等。你能帮我删除旧索引文件吗?
答案 0 :(得分:3)
我做了类似的事情,但只有当我关闭我的应用程序时才删除索引,然后在启动时再次设置它们。
您是否尝试过调用purgeAll()而不是purgeAllOnStart()?这就是我在app关闭时调用它并且它的工作原理。为了安全起见,在清除索引之后,我实际上也删除了我的索引目录以及它包含在磁盘中的所有文件/文件夹。