cts:parse( $query as xs:string, [$bindings as map:map?] ) as cts:query
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:
|
xquery version "1.0-ml"; cts:search(fn:doc(), cts:parse("cat AND dog")) ==> all documents containing the words "dog" and "cat"
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"))
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: Get the most useful answers to questions from the MarkLogic community, or ask your own question.