如何找出哪些文档在 Marklogic 中存在 TDE 合规性问题

How to find out which documents having compliance issue with TDE in Marklogic

我猜TDE后面,ML还是会创建不同类型的索引。 TDE大大简化了维护索引的任务。

然而,传统的ML Indexes并没有在DB中的所有文档上强制增强。例如,如果某些文档没有 xml 字段,则字段范围索引不会索引这些文档。如果需要知道哪些文档没有 xml 字段,可以使用 CTS 查询来识别那些异常文档。

如何使用 TDE 做到这一点?问题是如何知道哪些文件没有那个字段? 我想我不能再使用CTS了。

If one needs to know which documents do not have that xml field, CTS query could be used to identify those outlier documents.

您可以使用:

cts:not-query(cts:element-query(xs:QName("theMissingElement"), cts:true-query()))

这将为您提供缺少特定元素的文档列表。

How to do that with TDE? The question is how to know which documents do not have that field?

我能想到的一种方法是在 TDE 生成的每个行中包含一个唯一 ID(也许是 URI?)。然后,从 TDE 生成所有 ID 的列表。接下来,使用 CTS 生成相同的列表。最后,取CTS列表中没有出现在TDE列表中的值,得到没有被TDE索引的文档的结果。

我能想到的另一种更简单的方法是 allow the missing element to be invalid and nullable 而不是有效和必需的。然后,您只需要获取该列为空的所有行的列表。