【问题标题】:How to write elasticsearch-sql query using Java High-Level REST Client API如何使用 Java 高级 REST 客户端 API 编写 elasticsearch-sql 查询
【发布时间】:2020-05-14 13:42:49
【问题描述】:

这是我的 Elasticsearch-sql 查询。我使用 Kibana 执行了这个查询并获得了有效的输出。

GET _sql?format=json { "query": "SELECT Count(appId) FROM eps_stbl_logs where cast(timestamp AS DATE) = TODAY() and status = 'COMPLETED'" }

这需要用restHighLevelClient java API 编写。您能否帮助编写 Java API,因为我是 ElasticSearch 的 Java 新手。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    它可以像这样工作:

            Request request = new Request("GET", "/_sql");
            request.setJsonEntity("{\"query\":\"SELECT Count(appId) FROM eps_stbl_logs where cast(timestamp AS DATE) = TODAY() and status = 'COMPLETED'\"}");
            Response response = restHighLevelClient.getLowLevelClient().performRequest(request);
            String responseBody = EntityUtils.toString(response.getEntity());
    

    【讨论】:

    • 谢谢你,Alexander :) 我会努力找回你的玩具。
    • 非常感谢。它工作得很好。对于以下查询,我还需要您的另一项建议。如何为现有的 java 代码添加 fitter 查询。 GET _sql?format=json { "query": "SELECT Count(appId) FROM eps_stbl_logs where status = 'COMPLETED'", "filter": { "range" : { "@timestamp" : { "from" : "10/ 05/2020”,“至”:“13/05/2020”,“格式”:“dd/MM/yyyy”}}}}
    • 只需添加过滤条件:String query = "{\"query\":\"SELECT * FROM eps_stbl_logs\"," + "\"filter\": {" + " \"range \": {" + " \"@timestamp\": {" + " \"from\": \"10/05/2020\"," + " \"to\": \"13/05/2020 \"," + " \"格式\": \"dd/MM/yyyy\"" + " }" + " }" + "}}";
    • 感谢 Alexander 的快速回复。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多