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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐