Web applications 在使用Lucene的网络应用程序中,何时关闭singleton IndexWriter?

Web applications 在使用Lucene的网络应用程序中,何时关闭singleton IndexWriter?,web-applications,lucene,singleton,Web Applications,Lucene,Singleton,我正在web应用程序中使用Lucene。 Lucene用于在添加文章时创建索引。 由于一个索引目录可能只存在一个IndexWriter实例,因此我为应用程序使用单例IndexWriter 何时应关闭IndexWriter以将所有文档提交到索引目录 如果web服务器(tomcat)宕机,我应该如何恢复未提交的文档?Lucene是否提供了从撞车中恢复的方法 何时应关闭IndexWriter以将所有文档提交到索引目录 如果您非常担心数据丢失,请尽可能频繁地提交(即使在每个文档之后也可以这样做)。如果搜

我正在web应用程序中使用Lucene。 Lucene用于在添加文章时创建索引。 由于一个索引目录可能只存在一个IndexWriter实例,因此我为应用程序使用单例IndexWriter

  • 何时应关闭IndexWriter以将所有文档提交到索引目录
  • 如果web服务器(tomcat)宕机,我应该如何恢复未提交的文档?Lucene是否提供了从撞车中恢复的方法
  • 何时应关闭IndexWriter以将所有文档提交到索引目录

    如果您非常担心数据丢失,请尽可能频繁地提交(即使在每个文档之后也可以这样做)。如果搜索的新鲜度不是很重要,你仍然可以让旧的阅读器留在附近,以后再重新打开它们

    如果web服务器(tomcat)宕机,我应该如何恢复未提交的文档? Lucene是否提供了从撞车中恢复的方法

    Lucene是原子的-只要退出
    writer.commit()
    writer.close()
    ,更改就会保存到磁盘上,并可以在以后读取。我认为这应该足够了

    别忘了:Lucene只是一个搜索库。您有责任确保应用程序不会崩溃。即使是这样,您也有责任实施恢复战略。Lucene在原子性方面已经做了相当不错的工作。

    你可能想看看如何关闭和重新打开IndexWriter