0

MarkLogic 版本:9.0-6.2

我的要求是在 FINAL 数据库上启用双时间,所以我创建了所需的字段范围索引和轴。最后,我创建了一个时间集合,如下所示(在以 data-hub-FINAL 作为选定数据库的查询集合中执行)

const temporal = require("/MarkLogic/temporal.xqy");
const collectionResult = temporal.collectionCreate(
"customer", "system-axes", "valid-axes");

但是,我注意到临时集合的范围也扩展到了 STAGING DB。当我尝试通过传递“客户”集合在 STAGING DB 上执行常规 xdmp.documentInsert 时,我收到错误消息,因为客户集合是临时的,所以我无法传递集合名称。

我通过使用不同的集合名称(customerStaging)来解决问题,但这是 temporal.collectionCreate 的预期行为吗?有没有办法可以将临时集合限制为数据库,以便我可以在其他数据库中使用与非临时集合相同的集合?

请建议。

4

1 回答 1

0

时间设置存储在附加到内容数据库的架构数据库中。听起来您没有使用最新的 DHF,它具有单独的最终模式和单独的暂存模式数据库。您最好升级到最新版本才能使用它。

或者,您可以考虑使用通用的单时间/双时间集合,以及单独的逻辑集合,如“客户”。一个文档可以有多个集合。

于 2019-03-18T08:25:00.520 回答