2017-01-02 93 views
0

按工作日分類查看文檔? 我的數據是這樣的格式:簡單的日期直方圖?

{"text": "hi","created_at": "2016-02-21T18:30:36.000Z"} 

對於這個我使用的是dateConversion.groovy腳本保存在腳本文件夾中的ES 5.1.1。

Date date = new Date(doc[date_field].value); 
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(format); 
format.format(date) 

當我執行以下代碼中ES插件:

 "aggs": { 
     "byDays": { 
      "terms": { 
       "script": { 
        "lang": "groovy", 
        "file": "dateConversion", 
        "params": { 
         "date_field": "created_at", 
         "format": "EEEEEE" 
        } 
       } 
      } 
     } `` 

I am getting an exception like this: 

    { 
    "error": { 
    "root_cause": [ 
     { 
     "type": "illegal_argument_exception", 
     "reason": "Unable to find on disk file script [dateConversion] using lang [groovy]" 
     } 
    ], 
    "type": "search_phase_execution_exception", 
    "reason": "all shards failed", 
    "phase": "query", 
    "grouped": true, 
    "failed_shards": [ 
     { 
     "shard": 0, 
     "index": "testindex-stats", 
     "node": "vVhZxH7pQ7CO3qpbYm_uew", 
     "reason": { 
      "type": "illegal_argument_exception", 
      "reason": "Unable to find on disk file script [dateConversion] using lang [groovy]" 
     } 
     } 
    ], 
    "caused_by": { 
     "type": "illegal_argument_exception", 
     "reason": "Unable to find on disk file script [dateConversion] using lang [groovy]" 
    } 
    }, 
    "status": 400 
} 
+0

@doelleri我執行你的代碼,並獲得這樣的錯誤? – Seeker

+0

該腳本文件是否真的在每個節點的正確目錄中? – doelleri

+0

我保存在config/scripts/dateConversion.groovy中,每個節點上的什麼是正確的目錄?你可以詳細解釋,因爲我是這個環境的新手 – Seeker

回答

0

要在聚合使用腳本的script值不是字符串而是其他對象。我認爲你還需要指定langfile

"aggs": { 
    "byDays": { 
     "terms": { 
      "script": { 
       "lang": "groovy", 
       "file": "dateConversion", 
       "params": { 
        "date_field": "created_at", 
        "format": "EEEEEE" 
       } 
      } 
     } 
    } 
} 
+0

我得到一個異常當我用你的代碼..你可以幫忙,在整理它? – Seeker

+0

@ C.Yaswanth如果您遇到錯誤或異常,請將其添加到您的問題中。 – cfrick

+0

sry ..我對這個環境很陌生。感謝您糾正我 – Seeker

0

我的代碼的某些部分需要進行一些修改

{ 
    "aggs": { 
    "byDays": { 
     "terms": { 
     "script":{ 
      "file":"test", 
     "params": { 
      "date_field": "created_at", 
      "format": "EEEEEE" 
     } 
     } 
     } 
    } 
    } 
} 

,也是我test.groovy代碼太

Date date = new Date(doc[date_field].value); 
date.format(format);