Loading TOC...

MarkLogic 9 Product Documentation
cts:parse

cts:parse(
   $query as xs:string,
   [$bindings as map:map?]
) as cts:query

Summary

Parses a query string

Parameters
query The query string. For details, see Creating a Query From Search Text With cts:parse in the Search Developer's Guide.
bindings Bindings for mapping x:y parts of the query string. The map key can be either a simple string with no embedded spaces or punctuation or the empty string. The empty string defines the parsing of untagged words. For details, see Binding a Tag to a Reference, Field, or Query Generator in the Search Developer's Guide.

The map value for the label can be:

cts:reference
A reference to the tag in the query corresponds to a query against the indicated index, which constructs a query.
Reference Operator Query
cts:element-reference ":" cts:element-word-query
cts:element-reference "=" cts:element-value-query
cts:element-attribute-reference ":" cts:element-atrribute-word-query
cts:element-attribute-reference "=" cts:element-attribute-value-query
cts:json-property-reference ":" cts:json-property-word-query
cts:json-property-reference "=" cts:json-property-value-query
cts:field-reference ":" cts:field-word-query
cts:field-reference "=" cts:field-value-query
geospatial reference ":" geospatial query, parameter parsed as a region
geospatial reference "=" or eq geospatial query, parameter parsed as a region
geospatial reference other operator error
cts:uri-reference ":" cts:document-query
cts:uri-reference "=" cts:document-query
cts:collection-reference ":" cts:collection-query
cts:collection-reference "=" cts:collection-query
cts:path-reference ":" cts:word-query (no path word-query)
cts:path-reference "=" cts:path-range-query with operator "=" (no path value-query)
any eq range-query with operator "="
any ne range-query with operator "!="
any lt range-query with operator "<"
any le range-query with operator "<="
any ge range-query with operator ">="
any gt range-query with operator ">"
function ($operator as xs:string, $values as xs:string*, $options as xs:string*) as cts:query?
A reference to the tag in the query calls the function to produce a query.
xs:string
A reference to the tag in the query corresponds to a field query against the named field.

See Also

Example

xquery version "1.0-ml";
cts:search(fn:doc(), cts:parse("cat AND dog"))

==> all documents containing the words "dog" and "cat"

Example

xquery version "1.0-ml";
cts:parse("cat NEAR/5 dog AND mouse")

==>

cts:and-query(
  (cts:near-query(
     (cts:word-query("cat", ("lang=en"), 1), 
      cts:word-query("dog", ("lang=en"), 1)), 
     5, ("unordered"), 1), 
   cts:word-query("mouse", ("lang=en"), 1)), 
  ("unordered"))

Example

xquery version "1.0-ml";
let $bindings := 
  let $map := map:map()
  return (
    map:put($map, "title", cts:element-reference(xs:QName("title"))),
    map:put($map, "by", "person-field"),
    map:put($map, "cat", function($operator, $values, $options) {
            cts:collection-query($values) }),
    map:put($map, "", function($operator, $values, $options) {
            cts:json-property-word-query('desc', $values, 'case-sensitive', 2)}),
    $map
  )
return
cts:parse("title:grapes by:steinbeck cat:classics california", $bindings)

==> 

cts:and-query(
  (cts:element-word-query(fn:QName("","title"), "grapes", ("lang=en"), 1), 
   cts:field-word-query("by", "steinbeck", ("lang=en"), 1), 
   cts:collection-query("classics"), 
   cts:json-property-word-query("desc", "california", 
      ("case-sensitive","lang=en"), 2)), 
  ("unordered"))

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.