我在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
如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"
}
}
}
}
}
}'
答案 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"}}}}}}'