6

xdmp:node-replace()特定の要素が機能しないドキュメントがいくつかあります。xdmp:node-replace問題のあるドキュメントとほとんど同じですが、完全に正常に動作するドキュメントのセットが他にもいくつかあります。うまくいかなかった可能性のあるすべての可能性を試しましたが、無駄でした。その関数が「メモリ要素内xdmp:node-replace」で機能しない場所を読んでください。

そのため、問題が「メモリ要素内」にあるかどうかを確認するために、それが正確に何であるかを知りたいです。

それに光があれば非常に役立ちます

4

3 に答える 3

6

クエリ内で構築されたものはすべてメモリ内要素です。たとえば、次の XQuery はメモリ内要素を生成します。

<test/>

一部の関数呼び出しはメモリ内要素も返します:xdmp:unquoteは明らかな例です。現在のデータベースに由来しないノードは、メモリ内ノードとして扱われます。

このクエリは、データベース要素 (存在する場合) を生成します。これは、次を使用して変更できますxdmp:node-replace

doc('fubar')/test

これは、典型的なメモリ内更新エラーです。

xdmp:node-replace(<x/>, <y/>)

MarkLogic 6.0 ~ 1.1 では、エラー コードはXDMP-UPCONSTNODESです。

于 2012-11-27T17:15:02.653 に答える
6

同様の関数呼び出しを使用して、データベース内にあるかのようにメモリ内ノードを更新する場合は、それを行うユーティリティ ライブラリがあります。

https://github.com/marklogic/commons/tree/master/memupdate

メイン ライブラリには、App Services の下の MarkLogic サーバーも付属しています。

appservices/utils/in-mem-update.xqy

于 2012-11-27T21:04:31.370 に答える