java程序通过DSL语法查询ES

在日常使用java语言对es进行操作时,除了直接使用spring boot集成es的api,有事可能还需要使用原生的DSL语法,通过参数的形式去构建查询。
在此记录一下在开发过程中,使用DSL的json字符串并通过restHighLevelClient去构建http请求动态查询es的使用方法。
String queryInfo="{
    "query":{
        "match":{
            "member_id":"17e42e9d73774c0ba5281683861bf1ac"
        }
    },
    "size":1,
    "aggregations":{
        "group_by_field":{
            "terms":{
                "field":"stat_date",
                "size":1,
                "order":[
                    {
                        "_key":"desc"
                    }
                ]
            }
        }
    }
}";
Request request = new Request("GET","/index/_search");
request.setJsonEntity(queryInfo);
Response response = restHighLevelClient.getLowLevelClient().performRequest(request);
String responseStr = EntityUtils.toString(response.getEntity());
System.out.println(responseStr);

若封装为查询方法,则可将queryInfo作为方法的参数,达到动态查询ES的目的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐