我在尝试删除非字符串路径范围索引时遇到异常: -
ADMIN-NOSUCHITEM :(错误:FOER0000)范围索引不存在。
但我可以在数据库中看到该索引。
我使用delete-range-path-index查询来删除索引。这发生在非字符串索引中。
以下查询用于删除路径范围索引: -
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()函数来更新admin配置,以便后续调用可以使用更新的配置。但仍然得到相同的错误,当它试图删除非字符串索引时会发生这种情况。当我尝试只删除单个非字符串索引时,我得到了相同的异常。
我们使用的是marklogic版本: - 8.0-5.9
答案 0 :(得分:0)
我努力使用CentOS 7.4(使用https://github.com/grtjn/mlvagrant)和MarkLogic 8.0-5.9按照您的指定(但对于RH7)来启动Vagrant vm,但我无法重现您的问题。我运行了以下命令,返回时没有错误:
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)
您能详细说明如何创建范围路径索引吗?
HTH!