AEM查找图像组件引用的资产

AEM查找图像组件引用的资产,aem,jackrabbit,jcr-sql2,Aem,Jackrabbit,Jcr Sql2,我试图在AEM 6.1中找到引用大坝图像的页面,这些图像的宽度超过1280px。我真的很难通过一个JCR_SQL2查询来确定这是否可行。我尝试了许多不起作用的事情(尝试从CRXDE查询时获取ParseException),但我认为以下内容多少传达了我的想法,除了我认为我需要一些额外的连接,从cq:Page开始,以获取页面而不是实际的图像组件节点: SELECT s.* from [nt:unstructured] as s INNER JOIN [dam:Asset] as a on ISSAM

我试图在AEM 6.1中找到引用大坝图像的页面,这些图像的宽度超过1280px。我真的很难通过一个JCR_SQL2查询来确定这是否可行。我尝试了许多不起作用的事情(尝试从CRXDE查询时获取ParseException),但我认为以下内容多少传达了我的想法,除了我认为我需要一些额外的连接,从cq:Page开始,以获取页面而不是实际的图像组件节点:

SELECT s.* from [nt:unstructured] as s
INNER JOIN [dam:Asset] as a on ISSAMENODE(a, s.[fileReference])
WHERE a.[jcr:content/metadata/tiff:ImageWidth] >= 1280

我也尝试过加入jcr:path equality,但我无法实际运行任何东西。

我相信您不需要加入任何东西就可以实现所需的目标。我在crx de lite“Tools.Query”中测试了以下内容:

查找资产:

SELECT * from [dam:Asset] as a
WHERE a.[jcr:content/metadata/tiff:ImageWidth] >= 1000
SELECT * FROM [nt:unstructured] AS r
WHERE r.fileReference = '/content/dam/my-images/my-icon.png'
AND ISDESCENDANTNODE(r, '/content')  // optimization to reduce query space
查找对资产的引用:

SELECT * from [dam:Asset] as a
WHERE a.[jcr:content/metadata/tiff:ImageWidth] >= 1000
SELECT * FROM [nt:unstructured] AS r
WHERE r.fileReference = '/content/dam/my-images/my-icon.png'
AND ISDESCENDANTNODE(r, '/content')  // optimization to reduce query space
大多数连接示例都围绕父子关系
ISCHILDNODE(parent,child)
,这不适用于此用例。不幸的是,将字符串
r.fileReference
连接到Resource
a
已经超出了我的研究范围

我能找到的最接近的例子是从#6开始


对,问题的重要部分是“由图像组件引用”部分,而不是尺寸部分。哎呀,没有提到。我再看一眼。我还没有解决这个问题的运气——加入正在打败我。我可以指出,
s.fileReference
是一个字符串(不是节点/资源),因此将在
ISSAMENODE()上失败。我能提供的唯一建议是查询与您的条件匹配的所有资产,然后循环进行后续查询,以查找与每个命中路径匹配的任何
fileReference