如果在elasticsearch查询中使用了script_fields,则不再需要_source

F21*_*F21 22 field elasticsearch

我正在运行一个简单的查询,如下所示:

{
  "query": {
    "term": {
      "statuses": "active"
    }
  },
  "script_fields": {
    "test": {
      "script": "_source.name"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,一旦我介绍了script_fields,我就不再_source参与我的结果了.

我试过了:

{
  "fields": [
    "_all"
  ],
  "query": {
    "term": {
      "statuses": "active"
    }
  },
  "script_fields": {
    "email": {
      "script": "_source.name"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

{
  "fields": [
    "*"
  ],
  "query": {
    "term": {
      "statuses": "active"
    }
  },
  "script_fields": {
    "email": {
      "script": "_source.name"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但他们没有任何区别.有除此之外还有办法获得_source退货script_fields吗?

F21*_*F21 26

fields数组中,使其加载_source:

{
  "stored_fields": [
    "_source"
  ],
  "query": {
    "term": {
      "statuses": "active"
    }
  },
  "script_fields": {
    "email": {
      "script": "_source.name"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)