在MarkLogic中为日期设置动态存储区约束

时间:2019-07-09 21:25:15

标签: xquery marklogic

在我的数据库中,我在<date>上有一个路径范围索引,其中包含xs:dates。

<date>2019-01-01</date>

我正在尝试使用以下存储桶设置多面约束:

2019 with quarter (2019 Q1 (Jan-Mar), Q2 (April-June) etc)

2018 

2017

2016

2015

etc

我的问题是,我想动态更新存储桶,以将当前年份计算到季度存储桶中,其余年份也是如此。我当前有一个桶式范围约束:

<constraint name="date">
    <range type="xs:date" facet="true">
        <path-index>/data/date</path-index>
        <bucket ge="2019-01-01" lt="2019-03-01" name="q1">2019 Q1</bucket>
        <bucket ge="2019-04-01" lt="2019-06-01" name="q2">2019 Q2</bucket>
        <bucket ge="2019-07-01" lt="2019-09-01" name="q3">2019 Q3</bucket>
        <bucket ge="2019-10-01" lt="2019-12-01" name="q4">2019 Q4</bucket>
        <bucket ge="2018-01-01" lt="2019-01-01" name="2018">2018</bucket>
        <bucket ge="2017-01-01" lt="2018-01-01" name="2017">2017</bucket>
        <bucket ge="2016-01-01" lt="2017-01-01" name="2016">2016</bucket>
        <bucket ge="2015-01-01" lt="2016-01-01" name="2015">2015</bucket>
    </range>
</constraint>

上述问题是,它手动将2019年拆分为几个季度,但是当它变成2020年及以后的年份时,我如何才能自动进行更新并仅将当前年份拆分为几个季度?

1 个答案:

答案 0 :(得分:1)

相关问题