当前位置: 首页 > 知识库问答 >
问题:

AEM/CQ:用于具有表格输出的一次性JCR-SQL/SQL2/XPath查询的UI?

慕嘉茂
2023-03-14

我正在我们的AEM安装中做一些用法研究。我想找到一个组件的所有实例,看看它们对某个配置选项有什么价值。所以基本上,我想用sling:resourceTypemyComponent从所有节点中选择标题myOption属性。

我相信JCR-SQL2查询将是:

SELECT [title], [myProperty] FROM [nt:base]
where [sling:resourceType] like 'path/to/my/component'

我的问题是,我找不到运行此查询的UI。

>

  • CRX:DE查询工具(CRX:DE

    查询生成器调试器(/libs/cq/search/content/querydebug.html)使用自己的基于URL的查询语法,只输出JSON。我根据URL参数重新创建了查询。。。

    property=sling:resourceType
    property.value=path/to/my/component
    p.hits=selective
    p.properties=title myProperty
    p.limit=-1
    

    ... 但我仍然不想编写代码来解析JSON并显示一个表。

    我知道我可以编写一个类/组件来显示这一点,但同样,这是一个一次性的查询,我只是在四处挖掘。我不想只为了发送和显示这个查询而编写Java、JS或JSP。

    所以我的问题是。。。

    CQ中是否有另一个查询UI,可以让我输入带有指定列的一次性JCR-SQL/SQL2/XPath查询,并获得表格输出,就像使用SQL提示符或工具一样?

    我会满足于使用查询生成器咒语来生成打印精美的JSON,这样我至少可以查看JSON结果。

  • 共有2个答案

    松德曜
    2023-03-14

    考虑使用Groovy控制台。您可以轻松编写一个简短的脚本,生成所需的输出:

    def QUERY = "SELECT [jcr:lastModified], [jcr:title] FROM [nt:base] WHERE [sling:resourceType] = 'foundation/components/title'"
    
    session.workspace.queryManager.createQuery(QUERY, "JCR-SQL2").execute().rows.each { r ->
        println r.values.collect { it.string }.join('\t')
    }
    

    脚本可以简单地粘贴到文本区域,不需要编译或上传任何东西到服务器。

    梁丘亦
    2023-03-14

    您可以使用批量编辑器/etc/importers/bulkeditor。html。这非常符合你的要求

    只需将根路径设置为/content,取消选中内容模式,对于查询参数,请使用"sling: resourceType": path/to/my/组件。将自定义属性设置为title, myOption。它将结果显示在表中。

    更多信息:http://docs.adobe.com/docs/en/cq/5-6/administering/bulk_editor.html

    批量编辑器仅适用于简单查询,对于复杂查询,您可以尝试以下方法:http://adobe-consulting-services.github.io/acs-aem-tools/features/query-editor.html .

     类似资料:
    • 我有下面的查询,它不会产生结果,但不会产生错误。我试图选择所有不是“特色新闻稿”且属于特定类型的页面,例如“公告”。 如果我删除“AND(不包含......”行,我会得到正确的结果。此外,如果我把该行放回去,并删除“AND(包含......”行,我会得到正确的结果。但是同时有两行给我没有结果。有些页面应该是合格的,也就是说,它们不是特色新闻稿,而是类型公告,所以在我看来,逻辑上这应该是可行的。 有

    • 我正在编写一个JCR SQL2查询,其中列出了给定类型的所有节点,这些节点都是特定路径的后代。当我这样写我的查询时: 它工作正常,但是当我尝试绑定ISDESENDANTNODE下的内容时,就像这样: 在query.bind值("base",...)上引发异常: “javax.jcr.query.InvalidQueryException:java.text.ParseException:query

    • 我使用一个可以操作JCR节点的应用程序,通常可以重命名、移除、删除或移动它们。 使用JCR API,我可以访问存储库中的节点,并以与JCR中相同的顺序返回一组节点。 我希望能够使用JCR SQL2查询实现同样的功能。我没有发现任何关于这个的信息 例如,如果我有一个JCR树,比如: 当使用JCR SQL2进行查询时,它将以不同的顺序返回它们:childNode1、childNode2、childNo

    • 是否可以在Adobe CQ5/Adobe Experience Manager中使用SQL2、SQL、XPath或QueryBuilder找到同名同级(SN)。我们正在努力准备升级到AEM 6的实例。X和jackrabbit oak已经禁用了对SNS的支持,这使得在不解决这个问题的情况下升级是不可能的。可以递归地遍历存储库,但这太慢了,我正在使用查询寻找更好的选项。SNS的定义如下: 我更喜欢SQ

    • 我试图执行以下jcr sql2查询: 但是我得到了 是否有其他方法可以搜索名称类似“%example%”的节点? 我还试图搜索具有指定路径的节点 但是我得到了 如何搜索路径类似于'%示例%'的节点? 我在用JCR_SQL2

    • 我正在对PeopleSoft数据库进行查询,不确定是否可以根据初始查询在一次调用中从同一个表中获取信息。例如,我正在访问的表返回EmployeeID、FullName、FirstName、LastName、Position\u NBR和ReportsTo。但是ReportsTo是以经理的Position\u NBR(在同一个表中找到)的形式提供的,我想以name格式提供。我想这样做,但不确定是否可