ADMIN-DUPLICATECONFIGITEM:数据库资源“hrhub-content”已经内容数据库“elemen



我正在尝试创建一个脚本来从配置文件添加元素-属性-范围-索引和元素-范围-索引。 请在下面找到相同的脚本。我可以添加元素范围索引,但无法通过脚本或通过管理控制台 UI 添加元素属性范围索引。

注意:我已经交叉检查了,没有可用的重复索引。我有新创建的.仍然面临同样的问题。

import module namespace admin :="http://marklogic.com/xdmp/admin" 
                                 at "/MarkLogic/admin.xqy"
let $dbid   := xdmp:database("hrhub-content")
let $config :=admin:get-configuration()
let $rangespec:= admin:database-range-element-attribute-index("string","www.aetna.com/hrhub/nm","plocalname","","pname","",fn:false())
return 
 let $new-index  := admin:database-add-range-element-attribute-index($config,$dbid,$rangespec)
return admin:save-configuration-without-restart($new-index)

错误消息: ADMIN-DUPLICATECONFIGITEM: (ERR:FOER0000( 数据库 资源"HRHUB-content"已经内容数据库"元素- 属性-范围-索引">

脚本包含一些语法错误。我已经尝试过以下内容,它对我有用:

import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy";
let $dbid   := xdmp:database("hrhub-content")
let $config := admin:get-configuration()
let $rangespec:= admin:database-range-element-attribute-index("string", "www.aetna.com/hrhub/nm", "plocalname", "", "pname", "http://marklogic.com/collation/", fn:false())
return 
 let $new-index := admin:database-add-range-element-attribute-index($config,$dbid,$rangespec)
 return admin:save-configuration-without-restart($new-index)

我更改的内容:

  • 导入将:=更改为仅=
  • 导入最后需要;
  • 如果标量类型是"字符串",admin:database-range-element-attribute-index需要一个排序规则。

我刚刚尝试了瓦格纳粘贴的代码,其中一项更改是

let $dbid := xdmp:database("*Documents*")

它奏效了。当我重新运行代码时,我收到错误,您看到的是ADMIN-DUPLICATECONFIGITEM,这是有道理的,因为索引已经存在。您可能希望通过此代码检查索引是否存在 -

xquery version "1.0-ml";
import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy";
let $dbid   := xdmp:database("Documents")
let $config := admin:get-configuration()
return admin:database-get-range-element-attribute-indexes(
   $config,
   $dbid)

最新更新