分页查询
// 创建搜索请求对象
SearchRequest request = new SearchRequest();
request.indices("student");
// 构建查询的请求体
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
// 分页查询
// 当前页其实索引(第一条数据的顺序号),from
sourceBuilder.from(0);
// 每页显示多少条size
sourceBuilder.size(2);
request.source(sourceBuilder);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
// 查询匹配
SearchHits hits = response.getHits();
System.out.println("took:" + response.getTook());
System.out.println("timeout:" + response.isTimedOut());
System.out.println("total:" + hits.getTotalHits());
System.out.println("MaxScore:" + hits.getMaxScore());
System.out.println("hits========>>");
for (SearchHit hit : hits) {
//输出每条查询的结果信息
System.out.println(hit.getSourceAsString());
}
System.out.println("<<========");
全代码:
//分页查询
public class Paging_Query {
public static void main(String[] args) throws Exception{
//1.创建客户端对象
//创建服务主机名 和 Web 通信端口
final String hostname = "localhost";
final int port = 9200;
final String scheme = "http";
HttpHost httpHost = new HttpHost( hostname, port, scheme );
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(httpHost)
);
//1.分页查询
SearchRequest request = new SearchRequest();
request.indices("user");
SearchSourceBuilder builder = new SearchSourceBuilder().query( QueryBuilders.matchAllQuery() );
//从文档索引0开始
//(当前页码 - 1 ) * 每页显示条数
builder.from(0);
builder.size(3);//取三个数据
request.source(builder);
SearchResponse response = client.search( request, RequestOptions.DEFAULT );
SearchHits hits = response.getHits();
System.out.println(hits.getTotalHits());
System.out.println(response.getTook());
//数据遍历出来
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
//关闭ES 资源
client.close();
}
}