我想从Apache Nifi执行以下查询:
GET /myindex/_search
{
"size": 0,
"aggs": {
"range": {
"date_range": {
"field": "Datetime",
"ranges": [
{
"from": "2017-02-17T16:00:00Z||-1H/H",
"to": "2017-02-17T16:00:00Z||/H"
}
]
}
}
}
}
我想获得doc_count
的价值。
我尝试使用InvokeHTTP
并将上面定义的查询直接粘贴到字段HTTP Method
中。我还将Remote URL
设置为http://localhost:9200
。我将InvokeHTTP
与PutFile
相关联,以便在磁盘上保存响应。关系是Response
。
当我运行InvokeHTTP
时,它不会给我任何错误。但是,它既不输出任何结果(FlowFile for Response)。我确信结果不是空集,因为我使用curl
测试了此查询。
我的做法有什么问题?我应该以某种不同的方式定义HTTP Method
吗?
答案 0 :(得分:1)
对于POST,PUT和PATCH等动词,您通常将上述JSON主体作为流文件的内容并将其传递给InvokeHttp,并在其中设置正确的动词和URL。但是,InvokeHttp文档声明不会为GET动词发送消息正文。
好消息是搜索端点的Elasticsearch REST API支持GET和POST。从他们最新的文档:“HTTP GET和HTTP POST都可以用于执行身体搜索。由于并非所有客户端都支持GET与body,因此也允许POST。”
我会将流文件的内容设置为上面的JSON主体(可能使用GenerateFlowFile或ReplaceText),然后使用POST作为动词。
答案 1 :(得分:0)