MarkLogic Server 11.0 Product Documentation
cts.uriMatch

cts.uriMatch(
   pattern as String,
   [options as String[]],
   [query as cts.query?],
   [quality-weight as Number?],
   [forest-ids as (Number|String)[]]
) as Sequence

Summary

Returns values from the URI lexicon that match the specified wildcard pattern. This function requires the uri-lexicon database configuration parameter to be enabled. If the uri-lexicon database-configuration parameter is not enabled, an exception is thrown.

Parameters
pattern Wildcard pattern to match.
options Options. The default is ().

Options include:

"case-sensitive"
A case-sensitive match.
"case-insensitive"
A case-insensitive match.
"diacritic-sensitive"
A diacritic-sensitive match.
"diacritic-insensitive"
A diacritic-insensitive match.
"ascending"
URIs should be returned in ascending order.
"descending"
URIs should be returned in descending order.
"any"
URIs from any fragment should be included.
"document"
URIs from document fragments should be included.
"properties"
URIs from properties fragments should be included.
"locks"
URIs from locks fragments should be included.
"frequency-order"
URIs should be returned ordered by frequency.
"item-order"
URIs should be returned ordered by item.
"limit=N"
Return no more than N URIs. You should not use this option with the "skip" option. Use "truncate" instead.
"skip=N"
Skip over fragments selected by the cts:query to treat the Nth fragment as the first fragment. URIs from skipped fragments are not included. This option affects the number of fragments selected by the cts:query to calculate frequencies. Only applies when a $query parameter is specified.
"sample=N"
Return only URIs from the first N fragments after skip selected by the cts:query. This option does not affect the number of fragments selected by the cts:query to calculate frequencies. Only applies when a $query parameter is specified.
"truncate=N"
Include only URIs from the first N fragments after skip selected by the cts:query. This option also affects the number of fragments selected by the cts:query to calculate frequencies. Only applies when a $query parameter is specified.
"score-logtfidf"
Compute scores using the logtfidf method. Only applies when a $query parameter is specified.
"score-logtf"
Compute scores using the logtf method. Only applies when a $query parameter is specified.
"score-simple"
Compute scores using the simple method. Only applies when a $query parameter is specified.
"score-random"
Compute scores using the random method. Only applies when a $query parameter is specified.
"score-zero"
Compute all scores as zero. Only applies when a $query parameter is specified.
"checked"
Word positions should be checked when resolving the query.
"unchecked"
Word positions should not be checked when resolving the query.
"too-many-positions-error"
If too much memory is needed to perform positions calculations to check whether a document matches a query, return an XDMP-TOOMANYPOSITIONS error, instead of accepting the document as a match.
"eager"
Perform most of the work concurrently before returning the first item from the indexes, and only some of the work sequentially while iterating through the rest of the items. This usually takes the shortest time for a complete item-order result or for any frequency-order result.
"lazy"
Perform only some the work concurrently before returning the first item from the indexes, and most of the work sequentially while iterating through the rest of the items. This usually takes the shortest time for a small item-order partial result.
"concurrent"
Perform the work concurrently in another thread. This is a hint to the query optimizer to help parallelize the lexicon work, allowing the calling query to continue performing other work while the lexicon processing occurs. This is especially useful in cases where multiple lexicon calls occur in the same query (for example, resolving many facets in a single query).
"map"
Return results as a JavaScript Object instead of as a Sequence.
query Only include URIs from fragments selected by the cts:query, and compute frequencies from this set of included URIs. The fragments are not filtered to ensure they match the query, but instead selected in the same manner as "unfiltered" cts.search operations. If a string is entered, the string is treated as a cts:word-query of the specified string.
quality-weight A document quality weight to use when computing scores. The default is 1.0.
forest-ids A sequence of IDs of forests to which the search will be constrained. An empty sequence means to search all forests in the database. The default is ().

Usage Notes

This function returns a Sequence of Value objects, not native JavaScript values. In contexts where loose equality is sufficient (e.g. '==' operator), this distinction is transparent. However, in contexts where strict or "same value" equality applies (e.g. '===' operator, Array.prototype.includes, Array.prototype.indexOf), comparison between an item in the Sequence and an equivalent native value will fail. For details, see Value Object in the JavaScript Reference Guide.

Only one of "frequency-order" or "item-order" may be specified in the options parameter. If neither "frequency-order" nor "item-order" is specified, then the default is "item-order".

Only one of "ascending" or "descending" may be specified in the options parameter. If neither "ascending" nor "descending" is specified, then the default is "ascending" if "item-order" is specified, and "descending" if "frequency-order" is specified.

Only one of "eager" or "lazy" may be specified in the options parameter. If neither "eager" nor "lazy" is specified, then the default is "lazy" if "item-order" is specified, and "eager" if "frequency-order" is specified.

Only one of "any", "document", "properties", or "locks" may be specified in the options parameter. If none of "any", "document", "properties", or "locks" are specified and there is a $query parameter, then the default is "document". If there is no $query parameter then the default is "any".

Only one of the "score-logtfidf", "score-logtf", "score-simple", "score-random", or "score-zero" options may be specified in the options parameter. If none of "score-logtfidf", "score-logtf", "score-simple", "score-random", or "score-zero" are specified, then the default is "score-logtfidf".

Only one of the "checked" or "unchecked" options may be specified in the options parameter. If neither "checked" nor "unchecked" are specified, then the default is "checked".

If "sample=N" is not specified in the options parameter, then all included URIs may be returned. If a $query parameter is not present, then "sample=N" has no effect.

If "truncate=N" is not specified in the options parameter, then URIs from all fragments selected by the $query parameter are included. If a $query parameter is not present, then "truncate=N" has no effect.

To incrementally fetch a subset of the values returned by this function, use fn.subsequence on the output, rather than the "skip" option as the skip is applied to the relevance ordered query matches, not to the ordered values list.

When using the "skip" option, use the "truncate" option rather than the "limit" option to control the number of matching fragments from which to draw values.

If neither "case-sensitive" nor "case-insensitive" is present, $pattern is used to determine case sensitivity. If $pattern contains no uppercase, it specifies "case-insensitive". If $pattern contains uppercase, it specifies "case-sensitive".

If neither "diacritic-sensitive" nor "diacritic-insensitive" is present, $pattern is used to determine diacritic sensitivity. If $pattern contains no diacritics, it specifies "diacritic-insensitive". If $pattern contains diacritics, it specifies "diacritic-sensitive".

Example

  cts.uriMatch("http://foo.com*.html")
  => ("http://foo.com/bar.html", "http://foo.com/baz/bork.html", ...)
Powered by MarkLogic Server | Terms of Use | Privacy Policy