Loading TOC...

MarkLogic Server 11.0 Product Documentation
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.
Reference Operator Query
cts:element-reference ":" cts:element-word-query
cts:element-reference "=" cts:element-value-query
cts:element-attribute-reference ":" cts:element-attribute-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

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"])

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