MarkLogic 9 Product Documentation
cts:geospatial-co-occurrences

cts:geospatial-co-occurrences(
   $geo-element-name-1 as xs:QName,
   [$child-1-name-1 as xs:QName?],
   [$child-1-name-2 as xs:QName?],
   $geo-element-name-2 as xs:QName,
   [$child-2-name-1 as xs:QName?],
   [$child-2-name-2 as xs:QName?],
   [$options as xs:string*],
   [$query as cts:query?],
   [$quality-weight as xs:double?],
   [$forest-ids as xs:unsignedLong*]
) as element(cts:co-occurrence)*

Summary

Find value co-occurrences from two geospatial lexicons. Geospatial lexicons are implemented using geospatial indexes; consequently this function requires a geospatial index for each combination of elements and attributes or JSON properties specified in the function. If there is not a geospatial index configured for the specified element/attribute combination, then an exception is thrown.

Parameters
geo-element-name-1 A QName identifying the first lexicon. This must reference a geospatial lexicon. If it is an element child or JSON property child geospatial lexicon, pass the child QName in the child-1-name-1 parameter. For an element, element attribute, or JSON property child pair geospatial lexicon, pass the child QNames in child-1-name-1 and child-1-name-2.
child-1-name-1 An element, element attribute QName or JSON property name identifying the child of geo-element-name-1 that holds either the lat and longitude coordinates (element child geospatial lexicon) or the latitude coordinate (element/attribute/JSON property child pair geospatial lexicon). Use an empty sequence if geo-element-name-1 identifies an element or JSON property geospatial lexicon.
child-1-name-2 An element, element attribute QName or JSON property name identifying the child of geo-element-name-1 that holds the longitude coordinate when working with an element/attribute/JSON property child pair geospatial lexicon. Use empty sequence for an element or JSON property geospatial lexicon or element or JSON property child geospatial lexicon.
geo-element-name-2 A QName identifying the first lexicon. This must reference a geospatial lexicon. If it is an element child or JSON property child geospatial lexicon, pass the child QName in the child-2-name-1 parameter. For an element, element attribute, or JSON property child pair geospatial lexicon, pass the child QNames in child-2-name-1 and child-2-name-2.
child-2-name-1 An element, element attribute QName or JSON property name identifying the child of geo-element-name-2 that holds either the lat and longitude coordinates (element child geospatial lexicon) or the latitude coordinate (element/attribute/JSON property child pair geospatial lexicon). Use an empty sequence if geo-element-name-2 identifies an element or JSON property geospatial lexicon.
child-2-name-2 An element, element attribute QName or JSON property name identifying the child of geo-element-name-2 that holds the longitude coordinate when working with an element/attribute/JSON property child pair geospatial lexicon. Use empty sequence for an element or JSON property geospatial lexicon or element or JSON property child geospatial lexicon.
options Options. The default is (). The following options are available:
"geospatial-format=format"
For both geospatial lexicons, use the kind of geospatial lexicon specified by format (element, element-child, element-pair, or element-attribute-pair). If neither of the child QNames is specified, the default is "element"; if only the first of the child QNames is specified, the default is "element-child:; if both child QNames are specified, the default is "element-pair". If the selection is not compatible with the number of geospatial QNames specified, an error is raised.
"geospatial-format-1=format"
For the first geospatial lexicon, use the kind of geospatial lexicon specified by format (element, element-child, element-pair, or element-attribute-pair). If neither of the child QNames is specified, the default is "element"; if only the first of the child QNames is specified, the default is "element-child:; if both child QNames are specified, the default is "element-pair". If the selection is not compatible with the number of geospatial QNames specified, an error is raised.
"geospatial-format-2=format"
For the second geospatial lexicons, use the kind of geospatial lexicon specified by format (element, element-child, element-pair, or element-attribute-pair). If neither of the child QNames is specified, the default is "element"; if only the first of the child QNames is specified, the default is "element-child:; if both child QNames are specified, the default is "element-pair". If the selection is not compatible with the number of geospatial QNames specified, an error is raised.
"ascending"
Co-occurrences should be returned in ascending order.
"descending"
Co-occurrences should be returned in descending order.
"any"
Co-occurrences from any fragment should be included.
"document"
Co-occurrences from document fragments should be included.
"properties"
Co-occurrences from properties fragments should be included.
"locks"
Co-occurrences from locks fragments should be included.
"frequency-order"
Co-occurrences should be returned ordered by frequency.
"item-order"
Co-occurrences should be returned ordered by item.
"fragment-frequency"
Frequency should be the number of fragments with an included co-occurrences. This option is used with cts:frequency.
"item-frequency"
Frequency should be the number of occurences of an included co-occurrence. This option is used with cts:frequency.
"coordinate-system=name"
For both geospatial lexicons, use the coordinate system specified by name. Allowed values: "wgs84", "wgs84/double", "etrs89", "etrs89/double", "raw", "raw/double".
"coordinate-system-1=string"
For the first geospatial lexicon, use the coordinate system specified by name.
"coordinate-system-2=string"
For the second geospatial lexicons, use the coordinate system specified by name.
"ordered"
Include co-occurrences only when the value from the first lexicon appears before the value from the second lexicon. Requires that word positions be enabled for both lexicons.
"reversed"
Consider the second lexicon as the first and vice versa.
"proximity=N"
Include co-occurrences only when the values appear within N words of each other. Requires that word positions be enabled for both lexicons.
"limit=N"
Return no more than N co-occurrences. You should not use this option with the "skip" option. Use "truncate" instead.
"skip=N"
Skip over fragments selected by the query to treat the Nth matching fragment as the first fragment. Co-occurrences from skipped fragments are not included. This option affects the number of fragments selected by the query to calculate frequencies. Only applies when a $query parameter is specified.
"sample=N"
Return only co-occurrences from the first N fragments after skip selected by the query. This option does not affect the number of fragments selected by the query to calculate frequencies. Only applies when a $query parameter is specified.
"truncate=N"
Include only co-occurrences from the first N fragments after skip selected by the query. This option affects the number of fragments selected by the 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 single map:map value instead of as a element(cts:co-occurrence)* sequence .
query Only include co-occurrences in fragments selected by this query, and compute frequencies from this set of included co-occurrences. The co-occurrences do not need to match the query, but they must occur in fragments selected by the query. The fragments are not filtered to ensure they match the query, but instead selected in the same manner as "unfiltered" cts:search operations.
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

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 "fragment-frequency" or "item-frequency" may be specified in the options parameter. If neither "fragment-frequency" nor "item-frequency" is specified, then the default is "fragment-frequency".

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 "eager" if "frequency-order" or "map" is specified, otherwise "lazy".

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 "coordinate-system=name" is not specified in the options parameter, then the default coordinate system is used. If a lexicon with that coordinate system does not exist, an error is thrown.

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

If "truncate=N" is not specfied in the options parameter, then co-occurrences 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. The "skip" option is based on fragments matching the query parameter (if present), not on values. A fragment matched by the query might produce multiple values or no values. The number of fragments skipped does not correspond to the number of values. Also, the skip is applied to the relevance ordered query matches, not to the ordered value 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.

See Also

Example

(:
   Get the co-occurrences of points encoded as "lat" and "long" children of
   "source" elements with points encoded as "lat" and "long" children of
   "destination" elements, where the source elements occur before the
   destination elements in the document. Return the co-occurrences as a
   map, where the key is the point from the first geospatial index and the
   values are the points from the second geospatial index.
:)
declare namespace geoex = "http://example.com/ns/geo";

cts:geospatial-co-occurrences(
     xs:QName("geoex:source"),
     xs:QName("geoex:lat"),
     xs:QName("geoex:long"),
     xs:QName("geoex:destination"),
     xs:QName("geoex:lat"),
     xs:QName("geoex:long"),
     ("ordered","map"))
Powered by MarkLogic Server | Terms of Use | Privacy Policy