如何在使用 AEM 查询构建器搜索节点时 trim JCR 属性 值中的额外 space?
How to trim a extra space in the JCR property value while searching nodes using a AEM Query builder?
我有一个带有 属性 pageID 的 JCR 节点。 pageID 在节点中的值为“123”。我正在使用以下查询来搜索使用 pageID 属性.
的页面
queryMap.put("path" , "/content/mysite/pages");
queryMap.put("property" , "pageID");
queryMap.put("property.1_value" , "123");
在 AEM 中执行此查询时,我没有得到任何结果,因为 属性 值在 JCR 节点中有一个额外的 space(“123”)。
不确定我们是否可以在搜索过程中忽略此 space,但可以建议您下一个查询参数:
path=/content/mysite/pages
property=pageID
property.operation=like
property.value=123_
查询生成器的此参数等于下一个 xpath 查询:
/jcr:root/content/mysite/pages//*
[
jcr:like(@pageID, '123_')
]
_
代表一个 any 符号。因此,此查询将查找具有 属性 值的节点,例如 '123'、'123f' 等。所以这个查询不会只找到 '123'.
此外,您可以使用 %
代替 _
,它代表 zero 或 more 符号。
在这两种情况下,您都应该 post 处理您的结果(以删除 '123f' 等条目)。
我有一个带有 属性 pageID 的 JCR 节点。 pageID 在节点中的值为“123”。我正在使用以下查询来搜索使用 pageID 属性.
的页面queryMap.put("path" , "/content/mysite/pages");
queryMap.put("property" , "pageID");
queryMap.put("property.1_value" , "123");
在 AEM 中执行此查询时,我没有得到任何结果,因为 属性 值在 JCR 节点中有一个额外的 space(“123”)。
不确定我们是否可以在搜索过程中忽略此 space,但可以建议您下一个查询参数:
path=/content/mysite/pages
property=pageID
property.operation=like
property.value=123_
查询生成器的此参数等于下一个 xpath 查询:
/jcr:root/content/mysite/pages//*
[
jcr:like(@pageID, '123_')
]
_
代表一个 any 符号。因此,此查询将查找具有 属性 值的节点,例如 '123'、'123f' 等。所以这个查询不会只找到 '123'.
此外,您可以使用 %
代替 _
,它代表 zero 或 more 符号。
在这两种情况下,您都应该 post 处理您的结果(以删除 '123f' 等条目)。