AM New for Elasticsearch 6.2.1
和Kibana 6.2.1
。现在正在Kibana的脚本字段工作。我有两个不同的日期字段,例如(resolved_on and resolve_due_by(,我想检查条件是否sisolved_on sisthan sisthan或qualto resolve_due_bye。我尝试了一些脚本查询,如下所示
doc['resolved_on'] <= doc['resolve_due_by'] <!-- This not working -->
以下代码现在正常工作。我不知道是否正确进行两个日期是正确的。
((doc['resolved_on'].date.dayOfYear <= doc['resolve_due_by'].date.dayOfYear) && (doc['resolved_on'].date.millisOfDay <= doc['resolve_due_by'].date.millisOfDay))
请任何人可以帮我吗?
谢谢
根据文档,在无痛的脚本语言中,日期字段被公开为deadabledateTime
日期字段被暴露为
ReadableDateTime
,因此它们支持诸如getyear和getDayofweek之类的方法。获得毫秒,因为Epoch调用GetMillis
,他们给出以下示例
GET hockey/_search
{
"script_fields": {
"birth_year": {
"script": {
"source": "doc.born.value.year"
}
}
}
}
拥有getMillis
后,您将恢复比较long
值。
此外,由于我认为这是一个Jodatime类(有关完整文档,请参见Joda Time API文档(,您也可以使用isBefore()
或isAfter()
方法。
我终于找到了问题的解决方案。工作代码低于
(((!doc['resolved_on'].empty) && (doc['resolved_on'].value.getMillis() > doc['resolve_due_by'].value.getMillis())))