我已经在 MarkLogic 7 中创建了一个标量类型的元素范围索引gYear
。我编写了以下脚本,运行它并成功创建了索引,
xquery version "1.0-ml";
import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy";
let $newRangeIndexes := (
<range-element-index xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://marklogic.com/xdmp/database">
<scalar-type>gYear</scalar-type>
<namespace-uri>http://www.dummy.com/namespaces/dummy</namespace-uri>
<localname>dummyValue</localname>
<range-value-positions>false</range-value-positions>
</range-element-index>
)
let $config := admin:get-configuration()
let $dbid := xdmp:database()
let $newConfig := admin:database-add-range-element-index($config, $dbid, $newRangeIndexes)
return
admin:save-configuration($newConfig)*
它不包含元素,因为这对于标量类型collation
不是必需的。gYear
创建此索引后,元素的默认invalid-values
值为reject
.
现在我有一个要求,我必须更新这个现有索引(我必须修改 to 的值invalid-values
)ignore
。当我尝试这样做时,由于缺少该collation
元素而出现错误。我发现只有一种解决方案是删除索引并重新创建,这在我的情况下是不可接受的。
所以我想先collation
在这个现有索引中添加一个空元素,然后我将我的更改应用于invalid-values
. 那么有没有其他方法(除了删除现有的)来更新现有的元素范围索引配置以添加一个空collation
元素?