Ошибка при удалении индекса диапазона пути

Я получаю исключение ниже при попытке удалить индекс нестрокового диапазона пути:-

ADMIN-NOSUCHITEM: (err: FOER0000) Индекс диапазона не существует.

Но я вижу этот индекс в базе данных.

Я использовал запрос delete-range-path-index для удаления индекса. Это происходит для нестрокового индекса.

Ниже Query используется для удаления индекса диапазона Path:-

import module namespace admin = "http://marklogic.com/xdmp/admin"
      at "/MarkLogic/admin.xqy";
let $database := xdmp:database("test")
let $admin-config := admin:get-configuration()
for $index in admin:database-get-range-path-indexes($admin-config, $database)
return admin:database-delete-range-path-index($admin-config, $database, $index)

Да, я использовал функцию xdmp:set() для обновления конфигурации администратора, чтобы последующие вызовы могли использовать обновленную конфигурацию. Но все равно получаю ту же ошибку, и это происходит, когда он пытается удалить нестроковый индекс. Когда я попытался удалить только один нестроковый индекс, я получил то же исключение.

Мы используем версию marklogic:- 8.0-5.9

1 ответ

Я попытался развернуть Vagrant vm с CentOS 7.4 (используя https://github.com/grtjn/mlvagrant) и MarkLogic 8.0-5.9, как вы указали (хотя для RH7), но не могу воспроизвести вашу проблему. Я запустил следующее, которое вернуло без ошибок:

import module namespace admin = "http://marklogic.com/xdmp/admin"
      at "/MarkLogic/admin.xqy";

let $database := xdmp:database()
let $admin-config := admin:get-configuration()
let $admin-config := admin:database-add-range-path-index(
  $admin-config,
  $database,
  admin:database-range-path-index(
    $database,
    "int",
    "/x" || xdmp:random(),
    "http://marklogic.com/collation/",
    fn:false(),
    "reject"
  )
)
return
  admin:save-configuration-without-restart($admin-config)

;

import module namespace admin = "http://marklogic.com/xdmp/admin"
      at "/MarkLogic/admin.xqy";

let $database := xdmp:database()
let $admin-config := admin:get-configuration()
let $admin-config := admin:database-delete-range-path-index(
  $admin-config,
  $database,
  admin:database-get-range-path-indexes($admin-config, $database)
)
return
  admin:save-configuration-without-restart($admin-config)
;

import module namespace admin = "http://marklogic.com/xdmp/admin"
      at "/MarkLogic/admin.xqy";

let $database := xdmp:database()
let $admin-config := admin:get-configuration()
return
  admin:database-get-range-path-indexes($admin-config, $database)

Можете ли вы рассказать, как вы создали этот индекс пути диапазона?

НТН!

Другие вопросы по тегам