我正在尝试使用CMIS从alfresco获取所有标签(nodeRefs和名称(。
露天版本是3.4。
在谷歌搜索很多之前,我没有找到任何好的查询来做到这一点?有什么建议吗?
我在Alfresco维基上找不到关于标记服务如何工作的大量细节,所以如果有人想接受这个并更新维基,那可能会有所帮助!
标记有三个关键部分:
- 标记节点本身
- 标记的节点
- 标记范围
标记节点位于/cm:categoryRoot/cm:taggable
中的特殊节点workspace://SpacesStore/tag:tag-root
下。标记节点的类型为 cm:category
,cm:name
是标记
接下来,您需要将标签应用于节点。如果是新标签,则需要先在标签根中创建。如果这是节点上的第一个标记,请添加cm:taggable
方面。获取标记节点的 noderef,然后将其添加到节点上的多值 cm:taggable
属性中。(如果您调用addTag(NodeRef,String(,标记服务将为您完成所有这些操作(
最后,您刚刚标记的节点的主父层次结构中的各种节点可以定义为标记范围(例如站点节点(。这样,具有cm:tagscope
方面的节点将更新cm:tagScopeSummary
属性。 cm:tagScopeSummary
保存节点子节点使用的标签列表,以及标签的使用次数。这使您可以计算出树的那部分最受欢迎的标签是什么,以及使用哪些标签,以及树何时不再使用标签。同样,标记服务会为您更新所有这些。
AFAIK,各种标签属性(cm:taggable
和cm:tagScopeSummary
(不会通过CMIS公开。你需要使用一个普通的AlfrescoAPI,要么来自公共API,要么像script/org/alfresco/collaboration/tagQuery.get
这样的东西,这将使你获得应用于节点的标签列表。我建议您确保从中查询的节点是标记范围,因此它既漂亮又快速。站点始终是一个标记范围,因此这是一个很好的起点。