
dls.retentionRule( name as String, comment as Sequence, num-versions as Number?, duration as xs.duration?, document-query-text as String?, document-query as cts.query? ) as element(dls.retentionRule)
This function creates and returns a retention rule element.
Use
dls.insertRetentionRule
to insert the retention rule into
the database.
$num-versions and $duration
retains a numbered
version only if it is both one of the N most recent versions and it was
created more recently than "now - duration." If neither
$num-versions or $duration is specified,
then any numbered version matching the document query is kept forever.
The $document-query-text parameter is intended to be
used for the human readable form of a query that was used to produce the
corresponding
cts.query
. This may be the text that a user
typed into a search text field in the UI. This parameter does NOT affect
the retention policy.
dls-admin role is required to run
this function, or the privilege:http://marklogic.com/xdmp/privileges/dls-admin
// Returns a retention rule in XML format.
const dls = require('/MarkLogic/dls');
dls.retentionRule(
'All Versions Retention Rule',
'Retain all versions of all document',
null,
null,
'Locate all of the documents',
cts.andQuery(null));
// Returns a retention rule in XML format.
const dls = require("/MarkLogic/dls");
dls.retentionRule(
"Rule1",
"Keep the five most recent versions of Jim's documents " +
"that are 15 days old or newer",
5,
xs.duration('P15D'),
'Locate documents authored by Jim',
dls.authorQuery(xdmp.user('Jim')));
// Returns a retention rule in XML format.
const dls = require('/MarkLogic/dls');
dls.retentionRule(
'Rule2',
'Keep the five most recent versions of Jim\'s documents in the "foo" ' +
'collection that are 15 days old or newer',
5,
xs.duration('P15D'),
'Locate documents in the "foo" collection authored by Jim',
cts.andQuery([
cts.collectionQuery('http://marklogic.com/documents/foo'),
dls.authorQuery(xdmp.user('Jim'))]) );
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.