我正在使用Spell:insert
将字典保存在数据库中。保存完毕后,我会查看文档的权限,但这些权限都是空白的。父目录具有权限,但Spell:insert
插入的文档没有任何权限。
有什么我想念的吗?
Spell:insert
是否未设置权限,我应该在保存后调用URI上的xdmp:document-set-permissions
?如果是这种情况,为什么我会使用Spell:insert
而不是xdmp:document-insert
?
这是我用于将字典插入数据库的xquery代码
xquery version "1.0-ml";
import module namespace spell = "http://marklogic.com/xdmp/spell" at "/MarkLogic/spell.xqy";
let $words := fn:distinct-values(cts:words(("a"),("document","score-zero","collation=http://marklogic.com/collation/en") , cts:directory-query("/documents/", "infinity")))
let $dictionary :=
<dictionary xmlns="http://marklogic.com/xdmp/spell">
{
for $word in $words
where xdmp:castable-as("http://marklogic.com/xdmp/spell", "word-type", $word)
return
try {
<word>{ $word }</word>
}
catch ($exception) {
()
}
}
</dictionary>
let $insert := spell:insert("/configuration/search/word-in-documents.xml", $dictionary)
return $dictionary
答案 0 :(得分:2)
spell:insert
就是这样:
declare function
insert($uri as xs:string,
$dict as element(spell:dictionary))
as empty-sequence()
{
xdmp:document-insert($uri, validate as spell:dictionary {$dict},
xdmp:default-permissions(), ("http://marklogic.com/xdmp/documents",
"http://marklogic.com/xdmp/spell"))
};
如果您希望文档具有特定权限,请设置您正在使用的角色的默认权限:https://docs.marklogic.com/guide/security/permissions