MarkLogic Server 3.1 Overview
MarkLogic Server 3.1 is packed with both features and performance enhancements that will make your MarkLogic experience even more productive! With this release, we have listened to your feedback and requests, and assembled a set of powerful new capabilities. Major focus areas in this release include:
- More powerful XML search capabilities
- Industry's first XML classification engine
- Point-in-time queries
- Major performance enhancements, including registered queries, unfiltered search, cached modules, etc.
- Extended platforms and improved operational support
Click here for download directions. Documentation for MarkLogic Server 3.1, including XCC, is available here.
Read on to learn more about individual features in MarkLogic Server 3.1.
MarkLogic Server 3.1 Feature Summary
Here is a thumbnail sketch of some of the new features in MarkLogic Server 3.1.
More Powerful XML Search Capabilities
MarkLogic Server 3.1 incorporates new indexes, new built-ins, and new options for many search related features:
- Trailing Wildcard Indexes
A new index type can be used to accelerate searches that incorporate terms with trailing wildcards. - Diacritic-Insensitive Search
Text indexes in 3.1 are created in a diacritic-insensitive manner, increasing recall. Searches may be explicitly declared as diacritic-sensitive or insensitive, and search terms implicitly determine diacritic sensitivity in the same way that they determine case sensitivity. - Lexicons
3.1 can accumulate lexicons of words and values used in a database, an element, or in an attribute. These lexicons can be rapidly accessed through new XQuery builtins, including cts:words(), cts:word-match(), etc. - Bounded Scores Using cts:confidence()
cts:confidence() is a new scoring builtin that returns bounded relevance measurements, useful for generating percentages and other user-friendly measurements of confidence in a particular search result. - Additional Scoring Methods
cts:search() incorporates an optional parameter that can be used to specify two new alternative scoring methods. Scores are retrieved using cts:score() and cts:confidence(). - Improved Scoring
3.1 improves precision and accuracy of the basic scoring method supported in 3.0 and previous releases. - cts:document-query(), cts:directory-query() and cts:collection-query()
3.1 introduces three new cts:query constructors that can be used to specify documents, directories and/or collections as part of the cts:query expression used in cts:search(), cts:contains(), etc.
Industry's First XML Classification Engine
MarkLogic Server 3.1 incorporates an SVM XML classification API, which incorporates a set of builtins that can be used to train the classifier and then classify content into different categories. The classifier is both content- and structure-aware, and is extensively tunable.
Point-in-Time Queries
MarkLogic Server 3.1 introduces new capabilities to specify the timestamp at which a particular query is to be evaluated, and to manage the amount of "history" that is to be maintained in the database.
Major Performance Enhancements
MarkLogic Server 3.1 incorporates performance improvements from top to bottom, including the following performance tuning features directly accessible to developers:
- Registered cts:query() Constructors
Frequently used cts:query constructors can now be registered for later re-use, accelerating complex queries. - Fast Pagination
The new "unfiltered" option to cts:search() provides the capability to dramatically increase the retrieval speed for results deep in the result sequence of certain types of cts:search() expressions. - cts:query Constructors Take Sequences
Many cts:query constructors, such as cts:element-word-query(), have now been extended to accept sequences of QNames and sequences of search terms. This allows simpler expression of complex searches, and provides additional opportunities for optimization. - Efficient Search Estimates Using cts:remainder()
cts:remainder() introduces the ability to efficiently determine the size of a search result set while doing a cts:search(), making search queries that need to return "1 to 20 of 3,000,000" more efficient. - Capped xdmp:estimate() and fn:count()
xdmp:estimate() and fn:count() now incorporate an optional cap argument, allowing developers to specify a maximum value to be returned and controlling the amount of time that might be taken to return a result. - Increased Maximum Cache Sizes
On 64-bit platforms, 3.1 increases the maximum size of the various internal caches to 16 GB per cache
Platform and Operational Improvements
MarkLogic Server 3.1 incorporates support for more platforms, and a broad range of operational improvements of interest to both administrators and developers.
- More Platforms Supported
MarkLogic Server 3.1 is now available on: Solaris for Sparc, Solaris for x64 (Opteron), Linux for x64 (Opteron), Linux for x86, Windows 2003 Server 64-bit Edition for x64 (Opteron), and Windows 2003 Server for x86. - Extended Semantics for xdmp:eval() et al
New variants of xdmp:eval() and xdmp:invoke() have been introduced, allowing developers to specify whether requests evaluated through xdmp:eval() and xdmp:invoke() should be evaluated in the same statement as the calling request, or in a different transaction. xdmp:spawn() has been updated similarly. - Cancel Requests and Merges
3.1 extends the administrative interface to allow operators to cancel in-flight requests and to cancel merges in progress. - Enhanced Merge Policy Management
In 3.1, administrators can now define merge blackout periods, set maximum merge sizes, and completely disable merges if needed. - Pre-Commit Triggers
3.1 extends the set of triggers supported by MarkLogic Server to include "pre-commit" triggers - triggers which evaluate statements in the same transaction as the statement that caused the triggering event. - CPF with Pre-Commit Triggers
The Content Processing Framework has been updated to take advantage of pre-commit triggers, which both accelerates processing of content and improves resiliency in the case of unexpected system failures. - New XQuery Built-ins and Operators
3.1 extends the existing Functions & Operators library to include more than 30 new or renamed built-ins that are expected to belong to the XQuery 1.0 standard and which do not conflict with the May 2003 library. - Existing XQuery Built-ins and Operators Enhanced
3.1 incoporates enhancements to selected existing built-ins and operators (such as fn:concat()), where such enhancements are expected in the XQuery 1.0 standard and do not conflict with existing functionality in the May 2003 library. - Select Enhancements to XQuery Language
MarkLogic Server 3.1 has enhanced the XQuery evaluator in a number of ways that are compatible with existing implementations (for example, multiple function definitions sharing the same name but with different arguments), and are expected to be incorporated in the XQuery 1.0 standard. - XCC: New Client-Side Connector
3.1 introduces XCC, a new client-side connector library for both Java and .Net. XCC is based on several years experience with XDBC, and incorporates the best of what we have heard from our developers. Early feedback on programming with XCC has been extremely positive. - XDBC Compatibility
XDBC compatibility is maintained in the 3.1 release. Use your existing XDBC client-side library (at time of MarkLogic Server 3.1 release, the latest version is version 3.0-6, available on developer.marklogic.com) to simplify integrating existing MarkLogic-based applications with MarkLogic Server 3.1. Certain new 3.1 features, notably point-in-time queries, require use of XCC if you want to leverage these capabilities directly from your Java or .Net application layer.