通过node-red嵌套elasticsearch GET请求
Nested elasticsearch GET requests through node-red
我在 CentOs 7 机器上有 elasticsearch 6.7 运行,我有 node-red 运行 从那里我尝试查询弹性搜索。
当我需要 POST 数据到服务器时,或者当我需要执行简单的 GET _search 查询时,使用 httprequest 节点(在节点红色中)效果很好,我可以简单地在 url,如:
http://xxx.xxx.xxx.xxx:9200/data/default/_search?size={{{size}}}&from={{{from}}}&q=sensor:temp
简单流程:
如所述。
但是如果我需要具有嵌套参数的更复杂的查询,我无法通过 url 使用参数执行它。
例如,我将如何使用 node-red:
中的 httprequest 节点制作此 cURL GET
curl -XGET "http://xxx.xxx.xxx.xxx:9200/data/default/_search" -H 'Content-Type: application/json' -d'
{
"size": 0,
"query": {
"range":{
"created":{
"gte":"2019-03-11",
"lte":"2019-03-12"
}
}
},
"aggs": {
"status_terms": {
"terms": {
"field": "device.keyword"
},
"aggs": {
"status_stats": {
"stats": {
"field": "value"
}
}
}
}
}
}'
请注意,您可以在 query string as a parameters.
中发送整个正文
看起来像这样:
curl -XGET 'http://xxx.xxx.xxx.xxx:9200/data/default/_search?source_content_type=application/json&source={"size":0,"query":{"range":{"created":{"gte":"2019-03-11","lte":"2019-03-12"}}},"aggs":{"status_terms":{"terms":{"field":"device.keyword"},"aggs":{"status_stats":{"stats":{"field":"value"}}}}}}'
我在 CentOs 7 机器上有 elasticsearch 6.7 运行,我有 node-red 运行 从那里我尝试查询弹性搜索。
当我需要 POST 数据到服务器时,或者当我需要执行简单的 GET _search 查询时,使用 httprequest 节点(在节点红色中)效果很好,我可以简单地在 url,如:
http://xxx.xxx.xxx.xxx:9200/data/default/_search?size={{{size}}}&from={{{from}}}&q=sensor:temp
简单流程:
如
但是如果我需要具有嵌套参数的更复杂的查询,我无法通过 url 使用参数执行它。 例如,我将如何使用 node-red:
中的 httprequest 节点制作此 cURL GET curl -XGET "http://xxx.xxx.xxx.xxx:9200/data/default/_search" -H 'Content-Type: application/json' -d'
{
"size": 0,
"query": {
"range":{
"created":{
"gte":"2019-03-11",
"lte":"2019-03-12"
}
}
},
"aggs": {
"status_terms": {
"terms": {
"field": "device.keyword"
},
"aggs": {
"status_stats": {
"stats": {
"field": "value"
}
}
}
}
}
}'
请注意,您可以在 query string as a parameters.
中发送整个正文看起来像这样:
curl -XGET 'http://xxx.xxx.xxx.xxx:9200/data/default/_search?source_content_type=application/json&source={"size":0,"query":{"range":{"created":{"gte":"2019-03-11","lte":"2019-03-12"}}},"aggs":{"status_terms":{"terms":{"field":"device.keyword"},"aggs":{"status_stats":{"stats":{"field":"value"}}}}}}'