2016-10-17 43 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 }" 
      } 

請注意,您仍然需要的情況下,返回的東西的條件不滿足。