ADMIN-DUPLICATECONFIGITEM: ресурс базы данных «hrhub-content» уже содержит базу данных «element-attribute-range-index» - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь создать скрипт для добавления element-attribute-range-index и element -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-attribute-range-index»

Ответы [ 2 ]

1 голос
/ 01 июня 2019

Я только что попробовал код, который Вагнер вставил с одним изменением

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)
1 голос
/ 29 мая 2019

Ваш скрипт содержит некоторые синтаксические ошибки.Я попытался с нижеприведенным, и это сработало для меня:

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 для сопоставления требуется скалярный тип "string".
...