MarkLogicとXQueryを使い始めるのは非常に新しいものです。MarkLogic - 検索を拡張し、特定のオブジェクトノードを返します
私は返すようにSearch Transform
を作成しようとしています
、ここで文書
の特定のレベルから実際のJSONはサンプル文書です。
私は(、転写、トピック、バナーなど)検索結果がより低いレベルにある全JSONベースのsegment
どんなにを返すために
をしたいと思いますクエリコンソール...
search:search('trump')/search:result/search:snippet//@path
が正常を返します。 DOC
FN:DOC( "/ 20170120/NBCNightlyNews/1830/NBC")/配列ノード( "セグメント")/オブジェクトノード()1 /転写物FNでラップされたオブジェクトの/ノード( "0時00分02秒")/テキスト( "メッセージ")
しかし、
私は、変換中に類似したXPath式をimplmentしようとします。
let $root := $content/*
return document {$root/search:result/search:snippet//@path}
そして、それを実行しようと、私は返すように変換得ることができる場合には、
<error-response xmlns="http://marklogic.com/xdmp/error">
<status-code>400</status-code>
<status>Bad Request</status>
<message-code>XDMP-CHILDNODEKIND</message-code>
<message>
XDMP-CHILDNODEKIND: $root/search:result/search:snippet/descendant-or-self::node()/@path -- document nodes cannot have attribute node children
</message>
</error-response>
を返します(関係なく、XPath式が何であるかで、単に$ルート自体のほかに別の障害が発生しています)パスを評価し、適切なJSONセクションを取得してリターンすることができます。
どのような考えですか?
こんにちはデイブ、ご返信ありがとうございます。以前は '/ v1/search'を使用していましたが、最終的に検索をさらにカスタマイズする必要があります(私たちは検索に組み込む必要のある重量を提供するコンテンツ解析サーバを使用しています。私はTransformsをちょっと調べてから、カスタム検索ロジックに戻る必要があると考えています。私は提案されたドキュメントを読んだ後で元に戻します – Busturdust
最終目標に応じて、データオプションを使用すると、一致するドキュメントの選択された部分を抽出することができます。http://docs.marklogic.com/guide/search-dev/query-options#id_37692 – kcoleman
DaveとKimがヒントしているように、あなたのリソースサービスの拡張機能は、あなたに敏感なXPathベースの抽出を提供します。 – ehennum