Jolt - 改变弹性搜索响应的格式

时间:2017-06-07 21:42:11

标签: elasticsearch jolt

这应该是没有道理的,因为Jolt的建造主要是为了改变ES,mongodb的反应。但是我无法弄清楚

我想解析ES响应并仅打印选定的字段。例如,我想将响应转换为

{
"time" : 63,
"totalhits":100,
"0";{ response1.field1,response1.field2},
"1";{ response2.field1,response2.field2},
"2";{ response3.field1,response3.field2},
}


  {
  "took" : 63,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1000,
    "max_score" : null,
    "hits" : [ {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "0",
      "sort": [0],
      "_score" : null,
      "_source" : {"account_number":0,"balance":16623,"firstname":"Bradshaw","lastname":"Mckenzie","age":29,"gender":"F","address":"244 Columbus Place","employer":"Euron","email":"bradshawmckenzie@euron.com","city":"Hobucken","state":"CO"}
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "1",
      "sort": [1],
      "_score" : null,
      "_source" : {"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"amberduke@pyrami.com","city":"Brogan","state":"IL"}
    }, ...
    ]
  }
    }

我到目前为止的spec文件是

[
  {
    "operation": "shift",
    "spec": {
      "hits": {
        "*": {
          "*": "&"
        }
      }
    }
}
]

1 个答案:

答案 0 :(得分:1)

想通了。

[
  {
    "operation": "shift",
    "spec": {
      "took": "took",
      "hits": {
        "total": "total_hits",
        "hits": {
          "*": {
            "_source": {
              "country": "Response[&2].country",
              "city": "Response[&2].city",
              "year": "Response[&2].year"
            }
          }
        }
      }
    }
  }
]