ElasticSearch范围基于另一个字段的查询

时间:2016-01-20 13:38:53

标签: elasticsearch

因此docs始终使用任意日期作为要检查的值。

如果我有一个具有以下属性的对象:

DateTime DueDate
DateTime NotRequired

我该怎么做:

{
    "range" : {
        "NotRequired" : {
            "gt" : "DueDate"
        }
    }
}

如此有效地为您提供简单的查询,让我获得NotRequired > DueDate的所有实体?

1 个答案:

答案 0 :(得分:3)

range个查询只接受特定值。但是你可以使用script filter来比较两个日期,从而达到你想要的效果。

"bool" : {
    "filter" : {
        "script" : {
            "script" : "doc.NotRequired.date > doc.DueDate.date"
        }
    }
}

请注意,要使其正常工作,您需要enable dynamic scripting

相关问题