在查询服务中使用 ElasticSearch

查询 Elasticsearch / JSON查询风格

xx

在示例图片中,查询脚本就是符合 Elasticsearch 要求的HTTP查询请求,具体的ES访问地址不需要填写。 实际运行时,会根据数据源的参数来计算ES的访问地址。

有2种方法可以获得查询脚本:

注意事项:

  • 查询参数建议全部定义成 string 类型

示例图片中的查询脚本:

POST /oprlog-*/_search HTTP/1.1
Content-Type: application/json

{  
  "_source": {
    "excludes": ["exAll", "oprDetails", "ctxData", "addition"]
  },
  "size": 100,
  "sort": [
    { "startTime": {   "order": "desc"  }  }
  ],
  "query": {
    "bool": {
      "must": [],
      "filter": [
        {
          "bool": {
            "filter": [{
                "bool": {
                  "filter": [
                    { "bool": { "should": [ { "match_phrase": { "appName": "{appname}"} }], "minimum_should_match": 1} },
                    { "bool": { "should": [ { "match": {  "isSlow": 1 } }], "minimum_should_match": 1} }
                  ]
                }
              }]
          }
        },
        {
          "range": {
            "startTime": {
              "gte": "{start}",
              "lte": "{end}",
              "format": "strict_date_optional_time"
            }
          }
        }
      ]
    }
  }
}



说明:

  • JSON查询的参数采用 {xxx} 的占位形式
  • 如果需要查看 Elasticsearch 的原始响应,调用时请指定:x-result-format=raw





查询 Elasticsearch / SQL查询风格

也可以使用 SQL 语句来查询 Elasticsearch,例如:
xx


示例图片中的查询脚本:
select startTime,appName,oprId,isSlow,hasError 
from "oprlog-*" 
where appName = @appName  order by startTime desc limit 10



说明:

  • ES的SQL查询是有限制的,可参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-limitations.html
  • 如果需要查看 Elasticsearch 的原始响应,调用时请指定:x-result-format=raw