MarkLogic 9 Product Documentation
cts:document-fragment-query

cts:document-fragment-query(
   $query as cts:query
) as cts:document-fragment-query

Summary

Returns a query that matches all documents where $query matches any document fragment. When searching documents, document-properties, or document-locks, this function provides a convenient way to additionally constrain the search against any document fragment.

Parameters
query A query to be matched against any document fragment.

Usage Notes

A document fragment query enables you to cross fragment boundaries in an AND query, as shown in the second example below.

Example

cts:search(
xdmp:document-properties(),
  cts:document-fragment-query(
    cts:word-query("hello")))

(: All properties documents whose corresponding document
 : (that is, the document at the same URI as the
 : proerties document) contain the word "hello". :)

Example

xquery version "1.0-ml";
(:
 Given a document with a fragment root of <fragment>
 created as follows:

xdmp:document-insert("fragmented.xml",
   <root>
     <author>bob</author>
     <fragment>dog</fragment>
     <fragment>cat</fragment>
     <fragment>fish</fragment>
  </root>);
:)

cts:search(fn:doc("fragmented.xml"),
  cts:and-query((
    cts:document-fragment-query("bob"),
    "dog"
  ))
)

(: returns the fragmented.xml document :)
Powered by MarkLogic Server | Terms of Use | Privacy Policy