【发布时间】:2016-09-23 07:28:36
【问题描述】:
我有一个watcher配置如下:
{
"trigger": {
"schedule": {
"interval": "5s"
}
},
"input" : {
"search" : {
"request" : {
"indices" : [ "my_index" ],
"types" : [ "my_type" ],
"body" : {
"query" : {
"match_all" : {}
}
}
}
}
},
"transform" : {
"script" : "return [ body: groovy.json.JsonOutput.toJson(ctx.payload.hits.hits)]"
},
"actions" : {
"hbase_webhook" : {
"webhook" : {
"method" : "POST",
"host" : "<some_ip>",
"port" : <some_port>,
"path": "/v0.1/_events",
"body" : "data: {{ctx.payload.body}}"
}
}
}
}
正文中发布的数据不是有效的 JSON:类似于:
{ 'data: ': { '{"_index":"my_index","_type":"my_type","_source":{"key":"val"}},"_id":"<some_id>","_score":1.0}': '' } }
我不知道如何解析这个输出,因为 Node.js 中的 JSON.parse 无论如何都不会正确解析它。
【问题讨论】:
-
我并不是说它不起作用。当我用 {{ctx.payload.body}} 原样返回它时(没有数据:部分,它仍然无法解析。
-
当我用 {{ctx.payload.body}} 原样返回它时(没有数据:部分,它仍然无法解析。你得到什么解析错误?
-
@AndreiStefan 对不起,我的错。事实上,我得到了一个奇怪的 JSON,比如
{ '{"_index":"<some_index>","_type":"<some_type>","_source":{"<some_key>":"<some_value>", ...},"_id":"<doc_id>","_score":1.0}': '' },其中数据是键,值是''。如果没有匹配的文档,则为{ '0': '' }。有什么想法吗?我想我已经接近了:)
标签: json elasticsearch elasticsearch-plugin elasticsearch-watcher