首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Apache NiFi中使用查询Marklogic处理器在结构化查询中使用变量/函数?

如何在Apache NiFi中使用查询Marklogic处理器在结构化查询中使用变量/函数?
EN

Stack Overflow用户
提问于 2019-06-12 12:14:56
回答 1查看 69关注 0票数 0

我想查询marklogic在最后3分钟内在集合中更新的文档。

我试图为需求编写一个结构化查询,但它只接受dateTime的硬编码值,而不是fn:current-dateTime()函数。下面是我试过的。

代码语言:javascript
复制
<query xmlns="http://marklogic.com/appservices/search">
    <and-query>
         <collection-query>
             <uri>live</uri>
         </collection-query>
         <range-query type="xs:dateTime">
             <element ns="" name="created-on"/>
             <value>2019-06-10T10:36:14.002101Z</value>
             <range-operator>GT</range-operator>
         </range-query>
    </and-query>
</query>

我想像这样的事-

代码语言:javascript
复制
<query xmlns="http://marklogic.com/appservices/search">
    <and-query>
         <collection-query>
             <uri>live</uri>
         </collection-query>
         <range-query type="xs:dateTime">
             <element ns="" name="created-on"/>
             <value>{fn:current-dateTime() - xs:dayTimeDuration("PT3M")}</value>
             <range-operator>GT</range-operator>
         </range-query>
    </and-query>
</query>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-12 16:23:32

可以使用表达语言QueryMarklogic处理器的查询属性中以任何格式填充当前时间。

类似于:

代码语言:javascript
复制
<query xmlns="http://marklogic.com/appservices/search">
    <and-query>
         <collection-query>
             <uri>live</uri>
         </collection-query>
         <range-query type="xs:dateTime">
             <element ns="" name="created-on"/>
             <value>${now():minus(180000):format('YYYY-MM-dd HH:mm:ss.SSS')}</value>
             <range-operator>GT</range-operator>
         </range-query>
    </and-query>
</query>

该表达式通过now()获取当前时间,通过minus()减去3分钟*60秒/ min * 1000毫秒/秒= 180000毫秒,然后以特定格式表示日期。您可以使用电码将该输出更改为您需要的任何输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56562001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档