首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取详细信息或检索已删除的便笺文档

获取详细信息或检索已删除的便笺文档
EN

Stack Overflow用户
提问于 2016-01-28 09:20:06
回答 1查看 721关注 0票数 1

我正在做什么,

从java代码中,我检索notes数据库,并使用solrj客户端使用全文索引来索引该数据库的所有文档,并将特定文档的索引数据保存在全文服务器上。

假设当同一数据库再次出现索引时,考虑删除该数据库中已经在全文服务器上索引的任何一个文档,

但是这个文档是从notes数据库中删除的,所以我不想在已删除文档的全文服务器上保留(意思是要删除)索引数据。

所以我怎么知道哪份文件被删除了

我想的是,在索引时存储文档的id和db名称,所以我将有索引文档的记录,这样我就可以识别哪些文档被从特定的数据库中删除了。

还有其他有效的方法吗?

谢谢你阅读问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-28 12:06:34

文档的通用id至少对于完整的数据库是唯一的标识符。

您可以在Java中使用Document.getUniversalID()获得它。

通过设计,每个唯一的id在世界范围内都是独一无二的,但是作为一个设计师,您可以绕过它(unids是可写的),并且副本当然有相同的唯一id的文档。

将unid与数据库的文件路径相结合,那么它确实是唯一的。

现在,只需记住所有索引的联合,并且在下一次运行检查之后,如果有一些,您将无法再找到(例如,从existing indices- list中删除每个“找到的”unid - path键,并且最终那里的任何内容都不再存在)。

背景

在NSF-数据库中删除的每个文档在最终被清除之前(至少) 90天会变成一个所谓的Deletion Stub。该间隔是可配置的每个数据库,可以少于90天,如果管理员决定如此.

这些删除存根仍然包含unid作为信息。对于您的目的来说,它们将是完美的(因为这正是它们对称为replication的内部流程的目的)。

不幸的是,用Java获取数据库的删除存根并不是一种简单的方法。

有用外部工具C-API来自LotusScript获取它们的方法,但它们都不是很容易从Java中使用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35057375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档