MarkLogic:在特定数据库中创建时间集合

时间:2019-03-18 00:35:38

标签: marklogic marklogic-9 marklogic-dhf

MarkLogic版本:9.0-6.2

我的要求是在FINAL数据库上启用双时态,因此我创建了所需的字段范围索引和轴。最后,我创建了一个如下的时间集合(在查询conque中以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的预期行为吗?有什么方法可以将临时集合限制为一个数据库,以便可以在其他数据库中使用与非临时集合相同的集合?

请提出建议。

1 个答案:

答案 0 :(得分:0)

临时设置存储在内容数据库附带的模式数据库中。听起来您好像没有使用最新的DHF,后者具有单独的最终方案和单独的分级方案数据库。您最好升级到最新版本才能使用它。

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

HTH!