文書間で検索することはできますが、配列要素内の特定のプロパティを使用して検索することはできますか?さらに、同じ文書内の他の配列要素が一致しないため、結果には一致する配列要素のみが含まれ、文書全体は含まれない可能性があります。配列やオブジェクト内でMarklogicを検索し、一致する配列項目のみを返します(javascript)
例:JSON Marklogicドキュメント { "name": "aName", "children": [{ "name": "A", "target": { "min": 2, "max": 10 } },{ "name": "B", "target": { "min": 22, "max": 32 } },{ "name": "C", "target": { "min": 4, "max": 7 } }] }
与えられた私だけだけchildren[0]
とchildren[2]
が一致します。この場合、children
どこtarget.min
< 5とtarget.max
> 5.
をマッチさせたいです。どのようにして返されるクエリを指定するにはどうすればいいですか: [ { "name": "A", "target": { "min": 2, "max": 10 } }, { "name": "C", "target": { "min": 4, "max": 7 } } ]
関連するクエリはどのように構成しますか? N.B.私はサーバー側のjavascriptやNode.jsの実装を好むだろう。
ありがとう@kcoleman。私はmap/reduceを見ています - おそらく私が今のところ最高です。 私はこれはむしろ非効率だと言わなければならない。私は 'cts.pathRangeQuery(" children [*]。target.min "、" <"、5)'のようなものを指定し、それをjsearchクエリの一部として使用することができます。それからmap/reduce関数の中で同様のチェックをしなければなりません。面白いことに、質問を特定のレベル(例えば、http://docs.marklogic.com/guide/search-dev/structured-query#id_87231)で結果を返すことができればいいですか? – Kholofelo
興味深いことに私は 'を使うことができます。ドキュメント内のどこで一致が起こっているのかを正確に見つけるためにmap({snippet:true})を実行してください。次に、一致するドキュメントの部分をフェッチするために別のクエリを実行する必要があります。 – Kholofelo
私は、これらの他のインターフェイスではできない構造化クエリを使って何ができると思っているのか混乱しています。構造化されたクエリは、文字通り、文法的には唯一のものですが、cts:queryの上にあります。すべての検索インターフェイスの目的は、クエリに一致するドキュメントを見つけることです。必要に応じて一致を変換するためのいくつかのフックと、スニペットのようないくつかのデフォルトオプションも提供します。 – kcoleman