使用 Querybuilder 从结果中排除标签

Excluding tags from results using Querybuilder

AEM 允许我像这样查询 REST API:

Search for pages tagged with a certain tag

http://localhost:4502/bin/querybuilder.json?type=cq:Page&tagid=marketing:interest/product&tagid.property=jcr:content/cq:tags

1 type=cq:Page
2 tagid=marketing:interest/product
3 tagid.property=jcr:content/cq:tags

但是,如果我想要所有不包含特定标记的页面怎么办?

 1 type=cq:Page
 2 tagid=marketing:interest/product
 3 tagid.property=jcr:content/cq:tags

在 xPath 中我可以做类似的事情:

//jcr:content/cq:tags[not(@tagId = 'marketing:interest/product')]

这可以通过 REST API 实现吗?

我试过了/jcr:root/content/geometrixx//element(*, cq:Page)[(jcr:content/@cq:template != '/apps/geometrixx/templates/contentpage') ]

它给了我 /content/geometrixx 下不使用模板路径 /apps/geometrixx/templates/contentpage

的页面

给你:

path=/content/some/path/you/need
type=cq:Page
group.1_fulltext=marketing:interest/product
group.1_fulltext.relPath=jcr:content/@cq:tags
group.p.not=true

下一个 xpath 查询对应的内容:

/jcr:root/content/some/path/you/need//element(*, cq:Page) [ not(jcr:contains (jcr:content/@cq:tags, 'marketing:interest/product')c) ].

您还可以添加 p.limit=[some number] 以获得超过 10 个结果。

您可以找到一些有趣的信息 there and more about available predicates(检查实施 类)。