Marklogic 当xpath包含名称空间前缀时,路径索引由cts:path引用识别

Marklogic 当xpath包含名称空间前缀时,路径索引由cts:path引用识别,marklogic,marklogic-8,Marklogic,Marklogic 8,如果一个元素在XML中存在多个位置。 然后就很难对特定元素上的数据进行排序(默认情况下,文档将按照第一个元素进行排序) 我能够通过定义路径索引并将其传递给cts:path reference查询来解决这个问题 但是如果xpath包含名称空间前缀(名称空间是为xml定义的),则cts:path reference无法找到定义的路径索引 我得到下面的错误 SEARCH-BADORDERBY:(err:FOER0000)索引需要支持元素、元素属性、json属性或字段排序规范 无法理解为什么我会出现这个

如果一个元素在XML中存在多个位置。 然后就很难对特定元素上的数据进行排序(默认情况下,文档将按照第一个元素进行排序)

我能够通过定义
路径索引
并将其传递给
cts:path reference
查询来解决这个问题

但是如果
xpath包含
名称空间前缀(名称空间是为xml定义的),则
cts:path reference
无法找到
定义的路径索引

我得到下面的错误

SEARCH-BADORDERBY:(err:FOER0000)索引需要支持元素、元素属性、json属性或字段排序规范

无法理解为什么我会出现这个错误。
请帮忙

关于路径索引的一些良好实践:

  • 确保在声明索引和使用索引时使用完全相同的路径表达式字符串,包括相同的前缀
  • 声明前缀至少是路径名称空间,也可以选择在应用程序服务器级别
  • 接受第三个参数,您可以使用该参数传入命名空间绑定

您是否在管理页面中正确定义了“路径索引”?在路径索引配置中是否使用过类似于“/h:path/h:to/h:xmlement”的XPath?其中h是名称空间前缀名称与cts:reference()的情况相同,路径表达式在使用时应具有名称空间前缀。@rishabhv66是的,我已按照您提到的方式定义了xpath,并在管理控制台中为其创建了
路径名称空间
。请尝试创建全局名称空间。这将通过管理员页面[8001]在整个应用程序中提供。我打赌你还没有全局定义名称空间。是的,我还没有在应用程序服务器级别定义名称空间,我会尝试返回给你!