2016-10-06 6 views
0

私はelasticsearchインスタンスでこのgroovyスクリプトを実行しています。これは/usr/share/elasticsearch/config/scriptsに位置グルーヴィースクリプトの内容である:それは達していますし、ESはそれを実行しようとしているElasticSearch:groovyスクリプトの["+ field +"]フィールドが見つかりません

def opDate = new DateTime(doc['" + field + "'].date);opDate.getYear(); 

、それにもかかわらず、私に言っています:

No field found for [" + field + "] in mapping with types [fuas] 

これは私がESに送信するJavaコードです:

AggregationBuilders 
    .terms(this.getName()) 
    .field(this.getName()) 
    .script(
     new Script(
      "year", 
      ScriptType.FILE, 
      "groovy", 
      ImmutableMap.of("field", this.getName()) 
     ) 
    ); 

答えて

1

あなたにはあまりにも多くの引用符があります。このようにスクリプトを変更してください(fieldはスクリプトのパラメータです)。

def opDate = new DateTime(doc[field].date);opDate.getYear(); 
関連する問題