如何删除旧的 Hibernate 搜索索引
我在 Web 应用程序中使用 Hibernate 搜索进行全文搜索。我在管理面板中有用于创建索引的按钮。我通过以下代码执行此操作:
fullTextSession.createIndexer()
.purgeAllOnStart(true)
.optimizeAfterPurge(true)
.optimizeOnFinish(true)
.batchSizeToLoadObjects( 25 )
.threadsToLoadObjects( 5 )
.threadsForSubsequentFetching( 20 )
.startAndWait();
如果索引构建正确,然后我再次按下此按钮,旧索引文件仍在磁盘上,程序将创建新索引。等等。您能帮我在创建新索引文件之前删除旧索引文件吗?
I use Hibernate search for full text search in my web application. I have button for index creation in admin panel. I do it by this code:
fullTextSession.createIndexer()
.purgeAllOnStart(true)
.optimizeAfterPurge(true)
.optimizeOnFinish(true)
.batchSizeToLoadObjects( 25 )
.threadsToLoadObjects( 5 )
.threadsForSubsequentFetching( 20 )
.startAndWait();
If index was build correctly and then I push this button again old index files still on disk and program creates new index. And so on. Can you help me remove old index files before creating new?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我做了类似的事情,但只有当我关闭应用程序时,我才会删除索引,然后在启动时再次设置它们。
您是否尝试过调用 purgeAll() 而不是 purgeAllOnStart() ?这就是我在应用程序关闭时所说的,它有效。为了安全起见,在清除索引后,我实际上也从磁盘中删除了索引目录及其包含的所有文件/文件夹。
I do a similar thing but only when I shut my app down do I remove the indexes and then I set them up again on startup.
Have you tried calling purgeAll() instead of purgeAllOnStart()? That is what I call on app shutdown and it works. To be safe, after I purge the indexes I actually delete my index directory and all files / folders it contains from disk as well.