Java AEM 查询生成器 ||

Java AEM Query Builder ||

我正在构建一个简单的元数据 table 从查询中获取数据。我希望能够查询 'type' 变量的两个选项。 ||但是不工作;当我使用它时,页面崩溃了。

Map<String, String> predicates = new HashMap<String, String>();
            predicates.put("path", searchPath);
            predicates.put("type", "cq:Page||dam:Asset");
            predicates.put("orderby", orderBy);

    QueryBuilder qb = resourceResolver.adaptTo(QueryBuilder.class);
    Session session = resourceResolver.adaptTo(Session.class);

    Query query = qb.createQuery(PredicateGroup.create(predicates), session);
    query.setHitsPerPage(0);

您必须使用组来使用 OR 条件进行查询。您的搜索代码应该是

predicates.put("path", searchPath);
predicates.put("group.p.or", "true");
predicates.put("group.1_type", "cq:Page");
predicates.put("group.2_type", "dam:Asset");
predicates.put("orderby", orderBy);

您可以使用查询生成器调试器来尝试查询生成器,http://localhost:4502/libs/cq/search/content/querydebug.html?charset=UTF-8&query=path%3D%2Fcontent%0D%0Agroup.p.or%3Dtrue%0D%0Agroup.1_type%3Dcq%3APage%0D%0Agroup.2_type%3Ddam%3AAsset%0D%0A%0D%0A