如何从ElasticSearch检索脚本字段以及其他字段

时间:2019-11-19 15:15:57

标签: elasticsearch

我想动态地计算一些值,并与原始字段一起检索计算出的值,而不仅仅是计算出的值。说,有字段“ userId”,“值”。另外,我想计算“ additionalParameter”。为此,添加了以下简单脚本:

"query": {
    "match": {
            "userId": "1161851"
        }
  },
  "script_fields": {
    "additionalParameter": {
      "script": {
        "lang": "painless",
        "source": "doc['value'] * factor",
        "params": {
        "factor": 2.0
    }
      }
    }
  }

但是,当执行上述查询时,我仅获得了AdditionalParameter:

{
        "_index" : "test_index",
        "_type" : "doc",
        "_id" : "dd57ba66-a31a-45f1-9948-18ff4fb27dc1",
        "_score" : 3.0488422,
        "fields" : {
          "additionalParameter" : [
            10.0
          ]
        }
      },
...

有人知道将计算值附加到原始字段并检索全部内容的正确方法是什么吗?

1 个答案:

答案 0 :(得分:1)

在查询中添加_source

{
  "stored_fields": [
    "_source"
  ],
  "query": {
    "match": {
            "userId": "1161851"
        }
  },
  "script_fields": {
    "additionalParameter": {
      "script": {
        "lang": "painless",
        "source": "doc['value'] * factor",
        "params": {
        "factor": 2.0
    }
      }
    }
  }
}