有没有办法找出在Lucene索引中输入的最后一个Lucene文档?例如。 Lucene是以某种方式跟踪历史记录还是以某种方式提取已添加到索引中的文件(文档)的顺序?
背景:我想构建一个包含数百万个文档的非常大的索引,需要几天时间才能运行。我希望有一个索引实现,可以检测添加的最后一个文件,并在重新启动时继续在此位置。
答案 0 :(得分:2)
不是,不。你得到的最接近的是从索引中获得最高的doc id。如果您只是开始向空索引添加文档,并且没有任何内容被删除或更新或任何此类,那么它甚至可能会起作用。但是,无法保证按顺序分配文档ID。
如果您需要知道添加文档的顺序。你应该添加一个处理它的字段。日期/时间存储的索引时间或顺序ID可以很好地服务。虽然听起来有点像过度杀戮,但你只需要存储一个标识符来识别要从中恢复的源文档。在这种情况下,将一个id存储在哪里。在lucene中,在数据库中,在txt文件中,是序列化字符串。无论什么让你开心。