indexNodeName=true
在节点类型定义上设置和使用属性定义虚拟 nodeName 属性之间有什么区别(如果有的话)name=:nodeName
。indexNodeName定义如下:
默认为假。如果设置为 true,则还将为节点名称创建索引。这将能够更快地评估涉及节点名称约束的查询
将节点名索引为属性的目的是类似于indexNodeName
,但这并不意味着“相同”。文档对此并没有说太多:
字符串 :nodeName - 这种特殊情况索引节点名称,就好像它是被索引节点的虚拟属性一样。将它与 nodeScopeIndex=true 一起设置类似于在索引规则上设置 indexNodeName=true。
那么是否需要同时设置两个设置或只设置其中一个设置才能查询节点名。如果只是其中一个,那一个又有什么区别?例子:
//element(*, app:Asset)[fn:name() = ‘kite’]
//*[jcr:like(fn:name(), ‘kite%’)]
//element(kite, app:Asset)
//element(*, dam:Asset)[(jcr:like(fn:lower-case(fn:name()), 'kite%')