ElasticSearch:找不到["在groovy脚本中+ field +"]

时间:2016-10-06 09:39:31

标签: elasticsearch

我在弹性搜索实例中执行这个groovy脚本。这是位于/usr/share/elasticsearch/config/scripts

的groovy脚本的内容
def opDate = new DateTime(doc['" + field + "'].date);opDate.getYear();

已经达成了,ES正在尝试执行它,不过它告诉我:

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 个答案:

答案 0 :(得分:1)

你的报价太多了。像这样修改你的脚本(field是脚本的参数):

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