Search CQ5中的QueryBuilder API-基于日期范围的查询
我需要搜索的基础上,“上个月”,“上周”,“过去3个月”,“去年”。。 我使用下面的代码Search CQ5中的QueryBuilder API-基于日期范围的查询,search,aem,query-builder,Search,Aem,Query Builder,我需要搜索的基础上,“上个月”,“上周”,“过去3个月”,“去年”。。 我使用下面的代码 map.put("1_relativedaterange.property", "date"); map.put("1_relativedaterange.lowerBound", "-1M"); 分别放置-7d、-3M、-1y 这些适用于最后日期范围。我希望,根据这些标准,它不应该搜索日期是下个月、下周还是明年。但它也在寻找这一点,这不应该。 有人请指出我做错了什么吗 谢谢。指定lowerBound时,
map.put("1_relativedaterange.property", "date");
map.put("1_relativedaterange.lowerBound", "-1M");
分别放置-7d、-3M、-1y
这些适用于最后日期范围。我希望,根据这些标准,它不应该搜索日期是下个月、下周还是明年。但它也在寻找这一点,这不应该。
有人请指出我做错了什么吗
谢谢。指定lowerBound时,生成的Xpath查询是
/jcr:root/content/geometrixx/en//element(*, cq:Page)
[
(@jcr:content/cq:lastModified > xs:dateTime('2014-05-30T02:18:50.479Z'))
]
/jcr:root/content/geometrixx/en//element(*, cq:Page)
[
(@jcr:content/cq:lastModified > xs:dateTime('2014-05-30T02:25:21.026Z')
and @jcr:content/cq:lastModified < xs:dateTime('2014-06-29T02:25:21.026Z'))
]
这意味着它将获取日期值大于上述值的所有项目
可以将上限值指定为0,表示现在。除了满足其他条件外,这将只返回不超过当前日期的结果
map.put("1_relativedaterange.property", "date");
map.put("1_relativedaterange.lowerBound", "-1M");
map.put("1_relativedaterange.upperBound", "0");
生成的相应XPath查询是
/jcr:root/content/geometrixx/en//element(*, cq:Page)
[
(@jcr:content/cq:lastModified > xs:dateTime('2014-05-30T02:18:50.479Z'))
]
/jcr:root/content/geometrixx/en//element(*, cq:Page)
[
(@jcr:content/cq:lastModified > xs:dateTime('2014-05-30T02:25:21.026Z')
and @jcr:content/cq:lastModified < xs:dateTime('2014-06-29T02:25:21.026Z'))
]
/jcr:root/content/geometricxx/en//element(*,cq:Page)
[
(@jcr:content/cq:lastModified>xs:dateTime('2014-05-30T02:25:21.026Z'))
和@jcr:content/cq:lastModified
当您需要调试查询时,querydebug控制台(/libs/cq/search/content/querydebug.html
)可能会派上用场
有关相对日期范围谓词计算器的更多信息,请参阅。@MOneAtt谢谢。更新了链接。