Xquery 路径范围查询在MarkLogic中未按预期工作

Xquery 路径范围查询在MarkLogic中未按预期工作,xquery,marklogic,Xquery,Marklogic,我有两个场景,其中路径范围查询的行为不同- 1. cts:search(fn:doc(), cts:path-range-query("/test/path/node/Id","=","ABC_123")) 上面的查询给出了正确的结果 2. cts:search(fn:doc(), cts:path-range-query("/test/path/node/Id","=","ABC 123")) 第二个查询不获取任何结果。该文档存在于数据库中,用于AB

我有两个场景,其中路径范围查询的行为不同-

1. cts:search(fn:doc(), 
       cts:path-range-query("/test/path/node/Id","=","ABC_123"))
上面的查询给出了正确的结果

2. cts:search(fn:doc(), 
           cts:path-range-query("/test/path/node/Id","=","ABC 123"))
第二个查询不获取任何结果。该文档存在于数据库中,用于
ABC_123
ABC 123

我已经在
/test/path/node/Id
上创建了路径范围索引

有什么建议吗?

@Shalini

我在控制台上测试了这两个查询,运行良好,路径变化很小:

 I mentioned in path range index is : test/path/node/id instead of /test/path/node/Id
在控制台上测试的文件:

 a.xml:

  <test>
  <path>
  <node><id>ABC 123</id></node>
  </path>
  </test>
a.xml:
ABC 123
b、 xml


ABC_123
结果来自两个查询。

@Shalini

我在控制台上测试了这两个查询,运行良好,路径变化很小:

 I mentioned in path range index is : test/path/node/id instead of /test/path/node/Id
在控制台上测试的文件:

 a.xml:

  <test>
  <path>
  <node><id>ABC 123</id></node>
  </path>
  </test>
a.xml:
ABC 123
b、 xml


ABC_123

两个查询都会得到结果。

这也适用于大写的
Id
。至少对我来说是这样。这也适用于大写的
Id
。至少对我来说是这样。你能分享一份显示这种行为的(测试)文档吗?您还可以分享您使用的MarkLogic的版本吗?我使用的是MarkLogic 9.0.6,似乎是名称空间的问题。在创建路径范围索引期间,我没有在管理页面上定义名称空间。这就是原因吗?是的,名称空间肯定是个问题。在管理ui中定义带有前缀的路径名称空间,并在路径表达式中使用该名称空间。路径查询表达式也必须匹配..能否共享显示此行为的(测试)文档?您还可以分享您使用的MarkLogic的版本吗?我使用的是MarkLogic 9.0.6,似乎是名称空间的问题。在创建路径范围索引期间,我没有在管理页面上定义名称空间。这就是原因吗?是的,名称空间肯定是个问题。在管理ui中定义带有前缀的路径名称空间,并在路径表达式中使用该名称空间。路径查询表达式也必须匹配。。