开发者学堂课程【ElasticSearch 最新快速入门教程:分页 fromsize】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10658
分页 fromsize
内容介绍
一、 ES 查询详解之分页 fromsize
二、 案例实操
一、 ES 查询详解之分页 fromsize
核心代码:
SetFrom(0)//开始页
setSize(1)//检索长度
测试:检索类型,以及分页检索
@Test
public void testSearchTypeAndSplitpage(){
//案例1:检索 bigdata 索引库中,product type 中的字段 name 为 hive 的索引信息。
学习知识点:检索类型,分页检索
核心代码:
SearchResponse response=client.prepareSearch(indices)
//指定所关注的 type
.setTypes(TYPE_PRODUCT)
//设定 searchType
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
//设置分页(查询第一页,每页显示2条记录),公式:开始索引=(页码-1) pageSize
.setFrom((1-1)*2)
.setSize(2)
//设置查询的条件
setQuery(QueryBuilders.termQuery(“name”,“hive”))
.get();
//从结果中显示所有满足条件的记录
SearchHits hits = response.getHits();
for(SearchHits hit:hits){
logger.info(“检索到的document”信息是:“+hit. getSourceAsstring());
}
}
二、 案例实操
(1) 分页 fromsize 演示
案例:查询索引库之 bigdata下的 type 之 product 下 name 字段值中以 s 开头的索引信息,且只查询第二页的信息
@Test
public void testSplitPage(){
//步骤:
//1.根据 currentPage 以及 pageSize,推导出 fromIndex
int currentPage=2
int pageSize=2;
int fromIndex=(currentPage-1)*pageSize;
//分页查询
SearchResponse response=client.prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.regexpQuery(name:“name”,query:“s*”))
//设置分页信息
.setFrom(fromIndex)
.setSize(pageSize)
.get();
//3.分析查询后的结果
SearchHits hits = response.getHits();
for(SearchHits hit:hits){
System.out.println(hit.getSourceAsString());
}
}
(1) 运行结果
“C:\Program Files\Java\jdk1.8.0_131\bin\java.exe”…
前端处理操作,用于进行全局的初始化…
{“name”: “Spark”,“author”:“楚留香”,“last_version”:“2.3.4”}
后处理操作,用于进行资源的释放…
(2) 数据库附图
