Ошибка при удалении индекса диапазона пути
Я получаю исключение ниже при попытке удалить индекс нестрокового диапазона пути:-
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)
Можете ли вы рассказать, как вы создали этот индекс пути диапазона?
НТН!