我正在尝试使用内置的查询构建器 api对 CQ 中的内容进行全文搜索。这工作正常,但现在我想将搜索结果限制为过去 2 个月内修改过的结果。我看过使用相对日期时间谓词。我正在使用的属性是:
QueryBuilder builder = sling.getService(QueryBuilder.class);
String fulltextSearchTerm = request.getParameter("q");
Map<String, String> map = new HashMap<String, String>();
map.put("relativedaterange", "@jcr:content/cq:lastModified");
map.put("relativedaterange.lowerBound", "-2M");
map.put("fulltext", fulltextSearchTerm);
map.put("path", "/content/test/");
map.put("type", "cq:Page");
map.put("orderby", "@jcr:content/cq:lastModified");
map.put("orderby.sort", "desc");
Query query = builder.createQuery(PredicateGroup.create(map), resourceResolver.adaptTo(Session.class));
这给了我搜索结果,但不限于最近 2 个月内修改过的结果。我是正确使用这些属性还是需要设置其他值?