0

我们正在使用 MarkLogic 数据中心框架,并通过 REST 多文档写入文档端点将文档摄取到单时态数据库中。

现在,有时我们会通过这种未更改的文档方式接收文档更新。显然,在这种情况下,我们不想在 MarkLogic 中添加这些文档,因为单时间特性会导致时间戳有缺陷和不必要的存储空间。

我们编写了一些代码来检测重复(使用散列),但是,我们不知道如何在处理同一请求中的非重复文档时中止重复文档的摄取。也就是说,当一个请求同时包含非重复文件和重复文件时,我们如何防止只写入非重复文件。数据中心框架没有任何插件来修改文档编写(因为这是由 REST api 控制的)。我们试图fn:error()在内容插件中抛出一个,但不幸的是,这会中止整个多文档写入,而不仅仅是那些导致错误的文档的写入。

4

2 回答 2

0

我在没有看到您的代码的情况下在这里暗中拍摄了一些东西,但我想您可以返回一个空序列,而不是fn:errorxdmp:document-insert您检测到重复并且应该可以正常工作的情况下。

于 2018-07-11T15:24:24.203 回答
0

我们最终与 MarkLogic 解决方案架构师讨论了这个问题,结论是默认的 v1/documents api 无法做到这一点。

我们为解决这个问题所做的就是编写我们自己的自定义 api 作为 v1/resources 的一部分。此 api 仅调用数据中心框架代码,然后在文档不重复时写入文档。

于 2019-01-09T09:14:36.210 回答