通过CMIS获取所有Alfresco标签

时间:2013-10-12 10:36:16

标签: alfresco cmis opencmis

我正在尝试使用CMIS从alfresco获取所有标签(nodeRefs和名称)。

Alfresco版本是3.4。

在谷歌搜索之前,我没有找到任何好的查询来做到这一点?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我无法在Alfresco wiki上找到关于标记服务如何工作的大量详细信息,因此如果有人喜欢这样做并更新可能有帮助的wiki,那么

tagging有三个关键部分:

  • 标记节点本身
  • 标记节点
  • 标记范围

标记节点位于workspace://SpacesStore/tag:tag-root中的特殊节点/cm:categoryRoot/cm:taggable下。标记节点的类型为cm:categorycm:name为标记

接下来,您需要将标记应用于节点。如果是新标签,则需要先在标签根目录中创建。如果这是节点上的第一个标记,请添加cm:taggable方面。获取标记节点的noderef,然后将其添加到节点上的多值cm:taggable属性。 (如果您拨打addTag(NodeRef,String)

,标记服务将为您完成所有这些操作

最后,您刚刚标记的节点的主要父层次结构的各个节点可以被定义为标记范围(例如,站点节点)。这样,具有cm:tagscope方面的节点更新了cm:tagScopeSummary属性。 cm:tagScopeSummary包含节点子节点使用的标记列表,以及标记的使用次数。这使您可以计算树中该位的最常用标记,以及计算使用的标记以及树不再使用标记的时间。同样,TaggingService会为您更新所有内容。

AFAIK,各种标签属性(cm:taggablecm:tagScopeSummary)不会通过CMIS公开。您需要使用常规的Alfresco API之一,可以使用Public API,也可以使用script/org/alfresco/collaboration/tagQuery.get之类的API,它可以让您获得应用于节点的标记列表。我建议你确保你查询的节点是一个标签范围,所以它很好,很快。网站始终是标记范围,因此这是一个很好的起点。