Skip to main content

What's New in MarkLogic 11

Changes to Range Index Reference Resolution

In MarkLogic 9 and later, index reference resolution in range index construction, query constructors, and lexicon operations succeed in some cases that would have thrown an XDMP-RIDXNOTFOUND error in previous releases. If the index reference contains enough information to unambiguously match an existing index, MarkLogic will do so. Previously, MarkLogic assumed default values for some “missing” index attributes, resulting in an error.

Code that previously succeeded will continue to do so. Some code that would previously have gotten an error will no longer do so.

For example, suppose you define a geospatial element range index on element xs:QName("coords") with type long-lat-point and coordinate system wgs84, and then refer to the index by just the element QName (cts:element-geospatial-values(xs:QName("coord")). Previously, the reference would have been an error because the default point type (point) would have been assumed. Now, the reference resolves correctly as long as there is not a second geospatial element range index on the same QName with different coordinate system or point type.

When an ambiguous range index reference is detected, MarkLogic 9 throws one of the new exceptions XDMP-RIDXAMBIGUOUS (range index) or XDMP-GIDXAMBIGUOUS (geospatial index).