3

記述している MIME タイプの画像 (image/jpg、image/png、image/gif) に基づくコレクションにドキュメントがあります。

$mime-typeas "image"orを指定し"image/jpg"て、すべての画像タイプまたは特定のサブタイプでドキュメントを検索できるようにしたいと考えています。

let $mime-type-pattern := fn:concat($mime-type, "*")
let $mime-type-collection-uris := cts:collection-match($mime-type-pattern)

を検索する$mime-type "image"と、URI が返されます("image/jpg", "image/png", "image/gif")。これらのコレクションのドキュメントを検索できるようにしたいと考えています。

を検索する$mime-type "image/jpg"と URI が返され("image/jpg")ます。その場合、「image/jpg」コレクションのドキュメントのみを検索します。

search:optionsSearch API で検索するには、どのような構造を作成する必要がありますか?

4

3 に答える 3

2

ノード内にネストされcts:collection-queryたオプション内で使用できます。<additional-query><options>

search:search("foo",
  <options xmlns="http://marklogic.com/appservices/search">
    <additional-query>
      {cts:collection-query($mime-type-collection-uris)}
    </additional-query>
  </options>)

これにより、検索が のコレクションに限定され$mime-type-collection-urisます。

于 2012-06-05T19:19:52.190 に答える
1

エヴァンの答えは良さそうです。ジョーはおそらくすでにこれについて考えていましたが、この方法でコレクションを使用する場合の潜在的な設計上の問題について言及したいと思います。

コレクションは単なるフラット文字列です。そのため、MIME タイプだけでも問題ありませんが、後で追加する他のコレクションと名前が競合する可能性があります。たとえば、コレクション名に名前空間のような構造を与えることで、保護を追加できますmime-type=image/jpg。これにより、状況によってはコレクションマッチが高速化される可能性もあります。

ほとんどの場合、この落とし穴を避けるために、コレクションの代わりに要素を使用することをお勧めします。しかし、画像の場合、この要素はプロパティ フラグメントに移動する必要があり、保存するプロパティが他にない場合、コストがかかる可能性があります。

于 2012-06-05T20:11:55.487 に答える
0

qconole上で、コレクション名に基づいて検索 -

fn:collection("collection-name");

URI に割り当てられたコレクション名を取得する -

xdmp:document-get-collection("uri of document");
于 2015-06-17T03:06:07.890 に答える