Loading TOC...

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.
ReferenceOperatorQuery
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 eqgeospatial query, parameter parsed as a region
geospatial referenceother operatorerror
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)
anyeqrange-query with operator "="
anynerange-query with operator "!="
anyltrange-query with operator "<"
anylerange-query with operator "<="
anygerange-query with operator ">="
anygtrange-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"))

Comments

    Powered by MarkLogic Server 7.0-4.1 and rundmc | Terms of Use | Privacy Policy