spring boot 查询ES使用restHighLevelClient并通过DSL语法查询数据
java程序通过DSL语法查询ES在日常使用java语言对es进行操作时,除了直接使用spring boot集成es的api,有事可能还需要使用原生的DSL语法,通过参数的形式去构建查询。在此记录一下在开发过程中,使用DSL的json字符串并通过restHighLevelClient去构建http请求动态查询es的使用方法。String queryInfo="{"query":{"match":{
·
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的目的。
更多推荐
已为社区贡献1条内容
所有评论(0)