如何在 Marklogic 中获取 admin:database-get-range-element-indexes 的本地名称和标量类型

How to get a localname and scalar-type of admin:database-get-range-element-indexes in Marklogic

我使用 admin:database-get-range-element-indexes 来获取数据库中的索引列表。但是我想要 return [localname] 和 [scalar-type] 的列表 我正在学习 Marklogic。提前致谢。

xquery version "1.0-ml";
import module namespace admin = "http://marklogic.com/xdmp/admin"
      at "/MarkLogic/admin.xqy";

let $config := admin:get-configuration()
let $element_range_indexes := admin:database-get-range-element-indexes   ($config, xdmp:database("MORDB") )

return $element_range_indexes/localname (:<--THIS RETURN NOTHING:)

我只想 return 元素中的本地名称和标量类型。

 <range-element-index xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://marklogic.com/xdmp/database">

 <scalar- type>int</scalar-type>
 <namespace-uri>http://udma.com/mrd/record</namespace-uri>
 <localname>FullTextExists</localname>
 <collation></collation>
 <range-value-positions>false</range-value-positions>
 <invalid-values>ignore</invalid-values>

</range-element-index>

您的代码存在问题,您的 XPath 没有名称空间。 "localname" 位于“http://marklogic.com/xdmp/database”命名空间中。所以为它声明一个前缀,并在你的路径中使用它:

declare namespace db="http://marklogic.com/xdmp/database";
import module namespace admin = "http://marklogic.com/xdmp/admin"
      at "/MarkLogic/admin.xqy";

let $config := admin:get-configuration()
let $element_range_indexes := admin:database-get-range-element-indexes($config, xdmp:database("MORDB") )

return $element_range_indexes/(db:localname|db:scalar-type)