gpt4 book ai didi

java - 如何在 CQ5 中对最近 2 个月内修改的内容进行全文搜索?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:23 24 4
gpt4 key购买 nike

我正在尝试使用内置的 query builder api 对 CQ 中的内容进行全文搜索.这工作正常,但现在我想将搜索结果限制为过去 2 个月内修改过的结果。我看过使用 relative date time predicate .我使用的属性是:

   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 个月内修改过的结果。我是否正确使用了这些属性,还是需要设置一些其他值?

最佳答案

relativedaterange 键需要是 relativedaterange.property。这显示在父类的 java 文档中 DateRangePredicateEvaluator .通过使用查询构建器调试器,它表明您不需要在值的开头处使用 @ 符号。

所以最终结果是:

  map.put("1_relativedaterange.property", "jcr:content/cq:lastModified");
map.put("1_relativedaterange.lowerBound", "-2M");

关于java - 如何在 CQ5 中对最近 2 个月内修改的内容进行全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com