2016-10-17 49 views
0

我们areable传递整数值为内联则params的一部分,而不是日期..如何日期作为参数传递到ElasticSearch

我们都是这样想的。

"script": { 
        "inline": "if ((doc['enddate'].date >= param1) && (doc['enddate'].date <= param2)) { return param2 }", 
        "params": { 
        "param1": new DateTime(), 
        "param2": new DateTime(doc['enddate'].date).plusDays(+1) 
        } 
       } 
+0

参数必须是外部值,它们不能引用文档字段。你试图比较'enddate'和它自己?不知道你想达到什么... – Val

+0

对不起,我编辑了这个问题:)它应该比较DateTime.now – TBA

回答

0

您不能在内联参数中引用文档字段,并且在您的情况下您不需要任何参数。我建议做如下方式:

  "script": { 
       "inline": "def now = new DateTime(); def tomorrow = now.plusDays(1); if ((doc['enddate'].date >= now) && (doc['enddate'].date <= tomorrow)) { return tomorrow }" 
      } 

请注意,您仍然需要的情况下,返回的东西的条件不满足。