elasticsearch Elasticsearch:使用Groovy向结果中添加临时字段,elasticsearch,groovy,elasticsearch,Groovy" /> elasticsearch Elasticsearch:使用Groovy向结果中添加临时字段,elasticsearch,groovy,elasticsearch,Groovy" />

elasticsearch Elasticsearch:使用Groovy向结果中添加临时字段

elasticsearch Elasticsearch:使用Groovy向结果中添加临时字段,elasticsearch,groovy,elasticsearch,Groovy,我有一个带有查询和过滤器的大型配置,运行良好 现在,我正在使用Groovy添加一个新的脚本过滤器,它也可以正常工作: doc['age'].value >= 18; 但我想知道如何使用Groovy执行以下操作: 将临时布尔字段添加到当前文档。见下面的例子 我的结果中的示例文档: { "name": "foo", "age": 20 } 但是我想在我的结果中添加脚本过滤器的结果,如下所示: { "name": "foo", "age": 20, "

我有一个带有查询和过滤器的大型配置,运行良好

现在,我正在使用Groovy添加一个新的脚本过滤器,它也可以正常工作:

doc['age'].value >= 18;
但我想知道如何使用Groovy执行以下操作:

将临时布尔字段添加到当前文档。见下面的例子

我的结果中的示例文档:

{
    "name": "foo",
    "age": 20
}
但是我想在我的结果中添加脚本过滤器的结果,如下所示:

{
    "name": "foo",
    "age": 20,
    "age_ok": true
}

age\u ok
没有索引,而是由Groovy筛选器设置。

好的,您不能将脚本筛选器注入搜索结果,但可以使用scriptable字段来注入脚本数据。你必须复制脚本的某些部分

从文件中:

{
    "query" : {
        ...
    },
    "script_fields" : {
        "test1" : {
            "script" : "doc['my_field_name'].value * 2"
        },
        "test2" : {
            "script" : {
                "inline": "doc['my_field_name'].value * factor",
                "params" : {
                    "factor"  : 2.0
                }
            }
        }
    }
}