UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Elasticsearch】scripted fields を設けると _sourceが表示されない

ESのscripted fieldsを使って、計算した結果の一つをフィールドとして定義した際、出力結果をみるとscripted fields以外の_sourceが表示されなかった

GET my-index/item/_search
{
  "script_fields": {
    "my_doubled_field": {
      "script": {
        "lang":   "expression",
        "source": "doc['my_field'] * multiplier",
        "params": {
          "multiplier": 2
        }
      }
    }
  }
}
"hits": [
  {
    "_index": "my-index",
    "_type": "item",
    "_id": "123456789",
    "_score": 5.431662,
    "fields": {
      "my_doubled_field": [
        452.7564081099714
      ]
    }
  },
]

公式ドキュメントを漁ってもわからなかったが、StackOverflowに同じことで悩んでいる人がいた

stackoverflow.com

回答にあるように_source: trueをつけてあげるとよいみたいで、実際表示されたのでよかった

POST /abc/dfg/_search
{
  "_source": true,         <--- add this
  "query": {
    "bool": {
      "must": [
      ...

公式ドキュメントはまだみつけられていない