elasticsearch - 通过 node-red 嵌套 elasticsearch GET 请求
问题描述
我在 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"
}
}
}
}
}
}'
解决方案
请注意,您可以将查询字符串中的整个正文作为参数发送。
它看起来像这样:
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"}}}}}}'
推荐阅读
- c# - 调整标签的字体大小以适应面板而不超过最大字体大小
- azure-cognitive-search - ADLS Gen2 上 azure 搜索索引的可用性时间表
- javascript - 数组问题内的 addEventListener 和值递减
- android - 从数组映射中的对象获取属性
- ios - ios 通用链接 - 来自多个域
- uwp - UWP 连接到 MySql
- reactjs - material-ui-phone-number 未安装的组件
- sql-server - 有没有更好的方法来做这个查询
- tsql - Pyspark 中的多个 WHEN 条件实现
- html - 使用 Pandoc 内联 CSS