如何在使用 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'.

此外,您可以使用 % 代替 _,它代表 zeromore 符号。

在这两种情况下,您都应该 post 处理您的结果(以删除 '123f' 等条目)。