Java AEM查询生成器||

Java AEM查询生成器||,java,jsp,adobe,aem,Java,Jsp,Adobe,Aem,我正在构建一个简单的元数据表,从查询中获取数据。我希望能够查询“type”变量的两个选项。然而| |不起作用;当我使用这个时,页面崩溃 Map<String, String> predicates = new HashMap<String, String>(); predicates.put("path", searchPath); predicates.put("type", "cq:Page||dam:Asset");

我正在构建一个简单的元数据表,从查询中获取数据。我希望能够查询“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);
Map谓词=newhashmap();
谓词。put(“path”,searchPath);
谓词.put(“type”,“cq:Page | | dam:Asset”);
谓词put(“orderby”,orderby);
QueryBuilder qb=resourcesolver.adapto(QueryBuilder.class);
Session Session=resourcesolver.adapto(Session.class);
Query Query=qb.createQuery(谓词组.create(谓词),会话);
query.setHitsPerPage(0);

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

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);

您可以使用查询生成器调试器来处理查询生成器,

如果希望有两个具有此符号的字段,您将如何执行此操作。正如您想做的那样,type=page | | asset,但也想要tagid=(营销:兴趣/产品&&marketing:interest/seller)tagid.property=jcr:content/cq:tags