如何通过 ml-gradle 部署 TDE 模板

How to deploy TDE templates via ml-gradle

是否可以通过运行方法tde.templateInsert()部署TDE模板?

我需要在部署前验证模板。

如何在重新部署新模板或更新现有模板之前禁用模板?

是的,您可以使用 tde.templateInsert() 部署 TDE 模板。

它作为一种方便的方法提供,首先验证(您也可以使用 tde:validate() 执行),然后将模板插入模式数据库,然后重新索引匹配的文档。

如果您要部署具有相同 URI 的模板,那么您可以 re-insert 模板。

如果您有一组不再需要且想要删除的模板,您应该 set them as disabled 并允许重新索引匹配的文档。

您可以通过执行以下命令查看还有多少文档需要重新编制索引:

xdmp:forest-counts(
  xdmp:forest("Documents"),
  ("reindex-tde-templates", "reindex-deleted-tde-templates")
)

重建索引完成后,可以安全地删除这些 TDE 模板。您可以使用 xdmp:document-delete().

删除模板

如果您在不禁用的情况下删除模板,您可能会留下一些来自过时索引的浪费space。

https://docs.marklogic.com/guide/app-dev/TDE#id_94831

Accidental deletion of a template can be fixed by:

  • Reinserting the template in a disabled state.
  • Reusing the same template document URI for a new template.
  • Manually reindexing the database.

如果您使用 ml-gradle 进行部署,则只需将 TDE 模板放在模式数据库目录的 tde 目录下。即 /src/main/mySchemaDB/tde/foo.tde。看看 ml-gradle examples/schemas-project 的实际例子。