通过节点红色的嵌套Elasticsearch GET请求

时间:2019-04-03 14:14:46

标签: elasticsearch node-red

我在CentOs 7机器上运行了elasticsearch 6.7,并且在尝试查询弹性搜索的地方运行了node-red。

当我需要将数据发布到服务器时,或者需要执行简单的GET _search查询(可以在其中简单地在url中发送参数)时,使用httprequest节点(在节点红色中)非常有用。 >

http://xxx.xxx.xxx.xxx:9200/data/default/_search?size={{{size}}}&from={{{from}}}&q=sensor:temp

简单的流程:node-red GET flow

this question中所述。

但是,如果我需要带有嵌套参数的更复杂的查询,则无法通过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"
           }
         }
       }
     }
   }
 }'

1 个答案:

答案 0 :(得分:1)

请注意,您可以在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"}}}}}}'