Marklogic ADMIN-DUPLICATECONFIGITEM:数据库资源“;hrhub内容”;已建立内容数据库“;元素-属性范围索引

Marklogic ADMIN-DUPLICATECONFIGITEM:数据库资源“;hrhub内容”;已建立内容数据库“;元素-属性范围索引,marklogic,Marklogic,我试图创建一个脚本,从配置文件中添加元素-属性范围索引和元素-范围索引。请在下面找到相同的脚本。 我可以添加元素范围索引,但不能通过脚本或管理控制台UI添加元素属性范围索引 注意:我已经核对过了,没有重复的索引可供使用。我刚刚创建了。仍然面临着同样的问题 import module namespace admin :="http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.x

我试图创建一个脚本,从配置文件中添加元素-属性范围索引和元素-范围索引。请在下面找到相同的脚本。 我可以添加元素范围索引,但不能通过脚本或管理控制台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:(错误:FOER0000)数据库 资源“hrhub内容”已包含“内容数据库”元素- 属性范围索引“


您的脚本包含一些语法错误。我尝试了以下方法,效果很好:

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:如果标量类型为“string”,则数据库范围元素属性索引需要排序规则

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

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)

嗨,谢谢你的回复。我也做了同样的事情,但我无意中错过了添加这些更改。我仍然面临着同样的问题。您是否尝试对预配置的“文档”数据库运行此查询?是的,我对文档数据库运行了该代码,并成功运行。