拼写:插入不是设置或继承权限

时间:2014-05-29 00:54:28

标签: marklogic

我正在使用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

1 个答案:

答案 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