当前位置: 首页 > 知识库问答 >
问题:

如何使用Java高级REST客户端API编写elasticsearch sql查询

汪鸿波
2023-03-14

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

明白吗?format=json{“query”:“从eps_stbl_日志中选择Count(appId),其中cast(timestamp AS DATE)=TODAY()和status='COMPLETED'”

这需要在restHighLevelClient java API中编写。你能帮助编写java API,因为我是新的弹性搜索与Java。

共有1个答案

辛可人
2023-03-14

它可以这样工作:

        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());
 类似资料:
  • 如果有人能告诉我一种使用REST高级客户端或JAVA中的任何其他方式从JAVA执行时间点API请求的方法,这将非常有用,Elasticsearch 7.10.1中新引入了该方法。(传输客户端除外,因为它将很快被弃用)

  • 这里有一个自定义api,可以使用传输客户端删除索引,使用admin删除import语句,并且工作正常。 我正在使用Java高级Rest客户端编写同样的代码,但在那里找不到合适的import语句。根据我所阅读的内容,admin不用于Java高级Rest客户端,因为它似乎已被弃用。 使用高级Rest客户端时应该使用新的导入。我可以用它创建索引,但找不到删除请求或响应的相同导入。 导入组织。elasti

  • 我需要用高级REST客户机或Postman for Chrome测试接受JSON的REST API后端。 但是我遇到了一些问题:我只能使用内置表单并使用content-type:application/x-www-form-urlencoded发送请求 当我选择Raw Body并在其中插入内容时,后端会看到req.Body是一个空对象。当我还设置标题“content-type:applicatio

  • 我正在使用java高级rest客户端在我的应用程序中集成elasticsearch,但无法创建索引 在某个地方,我发现要执行请求,我们需要使用index(请求)方法(我在代码中已注释),但它表明index(请求)方法已从RestHighLevelClient类型中弃用。 这是我的代码:

  • 我正在尝试从ElasticSearch 2过渡到5或6。我想我想直接跳到6.1.1并使用RestHighLevelClient,因为它比低级rest客户端更接近我正在使用的现有传输客户端。 但是,我遇到了一个问题作为集成测试的一部分,我正在创建索引并插入特定数据,因此我知道我的查询是正确的。我似乎无法在High Level客户端中做到这一点。特别是,我希望能够调用: 但是,client.indic

  • 通过以下命令,我可以查看弹性搜索部署的endpoint,并且从Postman那里没有任何问题:GET https://:@d97215aee2.us-east-1.aws.found.io:9243 我也可以使用邮递员的这个命令创建索引...将https://el弹力:4yqimxfosz9mxpgy1fj7t5bu@d97218f74f6d48489b355dd7d665aee2.us-east