Loading TOC...

cts.parse

cts.parse(
   $query as String,
   [$bindings as Object?]
) 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

cts.search(cts.parse('cat AND dog'))

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

Example

cts.parse('cat NEAR/5 dog AND mouse')

==>

cts.andQuery(
  [cts.nearQuery([cts.wordQuery("cat", ["lang=en"], 1), 
   cts.wordQuery("dog", ["lang=en"], 1)], 5, ["unordered"], 1), 
   cts.wordQuery("mouse", ["lang=en"], 1) ], 
  ["unordered"])

Example

// Using bindings
var bindings = {
  title: cts.elementReference('title'),
  by: 'person-field',
  cat: function(operator, values, options) {
    return cts.collectionQuery(values); },
  '': function(operator, values, options) {
    return cts.jsonPropertyWordQuery('desc', values, ['case-sensitive'], 2); }
};
cts.parse('title:grapes by:steinbeck cat:classics california', bindings)

==>

cts.andQuery(
  [cts.elementWordQuery(fn.QName("","title"), "grapes", ["lang=en"], 1), 
   cts.fieldWordQuery("by", "steinbeck", ["lang=en"], 1), 
   cts.collectionQuery("classics"), 
   cts.jsonPropertyWordQuery("desc", "california", 
      ["case-sensitive","lang=en"], 2)],
  ["unordered"])

Comments

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