問題タブ [marklogic-8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xquery - 要素が存在しないドキュメントを特定するための効率的な XQuery クエリ
次のようなコレクションに約 5,000 万件のレコードがあるとします。
したがって、おそらく次のような 100 万件のレコード (不良データ) があります。
some_data 要素が空である。では、some_data_idelement-range-index
をセットアップした場合、空のものをすべて削除する効率的な XQuery クエリは何でしょうか?
私が探しているのは、各要素の子レコードの存在をチェックするFLWORではないクエリだと思います。これは非効率的だと思います (つまり、データを元に戻してからフィルタリングする)
一方、cts:search
クエリでそれを行うと、データをフィルターしてから戻すように、より効率的になりますか?
これを効率的に実行できるクエリを作成し、 FLWORステートメントに関する私の仮定が正しいかどうかを確認してください。
sparql - MarkLogic での名前付きグラフのサポート
FROM NAMED
MarkLogic でグラフがどのようにサポートされているかわかりません。トリプルがどのコレクションから来ているかを見つけるために、SPARQLクエリを試しています。結果は本当に混乱しています。例えば:
トリプルのセットを返します。ただし、行のコメントを外すと# GRAPH ?g
、次のエラーが返されます。
[1.0-ml] XDMP-COLLXCNNOTFOUND: amped-qconsole:qconsole-sparql($query, (), (), (), ()) -- Collection lexicon not enabled
ハイライトはWHERE {
ライン上にあります。
さらに、以下が機能し、トリプルのセットを返します。
しかし、これではありません:
空のセットを返します。行を追加するGRAPH ?g
と、上記と同じエラーが返されます。私は本当に混乱しています。誰かが行動の説明をすることができますか?
search - MarkLogic 発音記号を区別しないスニペット
今のところ、このコードを使用して、MarkLogic 検索から取得した JSON ドキュメントに基づいてスニペットを生成しています。
私が使用している検索を実行するとき:
そのため、検索は発音記号を区別せずに機能し、良い結果が得られますが、 のようにオプションsearch:snippet
を渡すことができません。diacritic-insensitive
cts.jsonPropertyValueQuery
ドキュメントでは、説明でこれを見ることができます
検索文法を定義し、検索を制御するオプション。関数 search:search の $options の説明を参照してください。search:snippet; では、transform-results オプションに apply 属性を指定できないことに注意してください。別のスニペット関数を使用するには、代わりに search:search または search:resolve を使用してください。
しかし、ここでは次のとおりです。
では、他のオプションを search:snippet に渡せないということですか? または、これを行うオプションはありますか?
私はそれを使用してテストしてchávez
おり、結果を生成していますが、スニペットは、そのドキュメントを意味する完全一致を含むドキュメントに対してのみ適切に生成されます
チャベスは何かをした
強調表示されずChavez
、
チャベスは何かをした
ハイライトになります
前もって感謝します!
marklogic - トークン認証用の xdmp http post オプション
https://docs.marklogic.com/xdmp:http-post関数を見つけました。
トークン認証方式を使用して、JSON ドキュメントを MarkLogic から中間層の node.js アプリケーションに送信したいと考えています。トークン認証を使用しています。
これを機能させるには、どの http オプションを使用すればよいですか?
例:
もちろん、これをそのまま投稿すると、401の無許可の応答が得られます。
marklogic - mlcp csv ファイルを OBI ソースに変換
次の課題があります。mlcp を使用して MarkLogic データベースにロードする csv ファイルがあります。また、ロード中にロードされた行を OBI ソースに変換したいので、そのための変換関数を作成します。
今、私は変換に苦労しています。変換がなければ、データは期待どおり行ごとにドキュメントとして読み込まれます。
csv の例:
トランスフォーム救急車.xqy:
mlcp コマンド:
mlcp 出力:
xdmp:unquote() なしで試してみましたが、強制の document-node() エラーが発生しました...
ご意見をお聞かせください...
triggers - トリガーは実行されません (詳細情報を追加)
私はこのトリガーを何時間もいじっていますが、今問題を特定したと思います。
ML8 documentationのようにトリガーの例を設定しました。
より現実的なアクションに変更しました。
問題は、lib.xqy に独自の関数を保持するライブラリ モジュールを使用しているようです。Query Console で lib 自体をテストしましたが、すべての機能が正常に動作します。
アラート アクション自体も QC で正常に実行されます。
simpleTrigger は問題なく動作します。
より複雑なものは、自分のライブラリを使用する関数を削除した場合に実行されます。
トリガーがユーザーによって実行されているか、モジュールが見つからない場所 (モジュール db にあります) から実行されているようです。content-db を指すように trigger-db を設定しました。
トリガーは、新しいドキュメントのディレクトリを調べます (ドキュメントの作成)。
独自の lib 関数を使用する場合、スローされるエラーは次のとおりです。
モジュールはmodules-dbにあります...
私を悩ませているもう1つのことは、MLドキュメントの例が
この場合、パーミッション app-user は何をしますか?
とにかく主な質問: トリガー アクションでカスタム モジュールを使用すると、トリガーが実行されないのはなぜですか?
この質問を見て、関連していると思いますが、そこの答えがわかりません...
EDIT 開始、トリガー作成ステートメントの詳細:
また、実際にトリガーはQCから作成されるため、実際には管理者として(app-specific.rbにコードを追加する方法をまだ理解する必要があります)。また、トリガー アクションは、ドキュメントのトリガーの例と同等のドキュメント挿入ステートメントを使用して QC から読み込まれます。
完全を期すために、Geert の提案に従ってこれを app-specific.rb に追加しました。
テストのために、コンテンツの一部としてもロードしました (アクションが実行される前に述べたように、./ml ローカル デプロイ コンテンツを使用してロードするため、アクション ドキュメント自体の権限に問題はないようです。理解できないのは、アクションで独自のモジュールを使用しようとすると、モジュールが見つからないか、(コメント David を参照) モジュールに対する適切な権限がないため、トリガー アクションの実行に失敗することです ...モジュールは /src/lib/lib.xqy の下に roxy でロードされます
2回目の編集
以下を app_specific.rb に追加して、すべてのトリガー スタッフを roxy に含めるように追加しました。
ご覧のとおり、ルートパスは「/」行になっています
権限も手動で追加しましたが、sccs-lib.xqy を指す行を追加するとすぐにトリガーが失敗します...