我正在构建一个简单的元数据表,该表从查询中获取数据。我希望能够查询“类型”变量的两个选项。 ||但是不起作用;当我使用此页面崩溃。

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

07-26 06:16