我正在尝试创建一个脚本,以从配置文件中添加element-attribute-range-index和element -range-index。请在脚本下方找到相同的内容。 我能够通过脚本或通过管理控制台用户界面添加element-range-index,但不能添加element-attribute-range-index。
注意::我已经进行了交叉检查,并且对此没有重复的索引。我是刚刚创建的。仍然面临着同样的问题。
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”已经是内容数据库“ element- 属性范围索引”
答案 0 :(得分:1)
您的脚本包含一些语法错误。我已经尝试过以下方法,并且对我有用:
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
需要排序规则。答案 1 :(得分:0)
我刚刚尝试了Wagner粘贴的代码,唯一的改变是
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)