I use admin:database-get-range-element-indexes to get a list of indexes in database. But I want return a list of [localname] and [scalar-type] I am learning Marklogic. Thanks in advance.
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:)
I want to return only localname & scalar-type in elements.
<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>
The problem with your code is that you XPath has no namespace. "localname" is in the "http://marklogic.com/xdmp/database" namespace. So declare a prefix for it, and use that in your path:
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)