2016-10-06 3 views
0

Я выполняю этот groovy-скрипт в экземпляре elasticsearch. Это содержание заводной скрипта, расположенного в /usr/share/elasticsearch/config/scripts:ElasticSearch: Поле не найдено для ["+ field +"] в строчном скрипте

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

Он достиг и ES пытается выполнить это, тем не менее, он говорил мне:

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

Это Java код, который я отправить ES :

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(); 
Смежные вопросы