开发者学堂课程【ElasticSearch 最新快速入门教程:分页 fromsize】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10658
分页 fromsize
内容介绍
一、 ES 查询详解之分页 fromsize
二、 案例实操
一、 ES 查询详解之分页 fromsize
核心代码:
SetFrom(0)//开始页
setSize(1)//检索长度
测试:检索类型,以及分页检索
@Test
public void testS
earch
T
ype
A
nd
S
plitpage
(){
//案例1:检索 bigdata 索引库中,product type 中的字段 name 为 hive 的索引信息。
学习知识点:检索类型,分页检索
核心代码:
SearchResponse response=client.prepareSearch(
indices
)
//指定所关注的 type
.setTypes(TYPE
_P
RODUCT)
//设定 searchType
.set
S
earch
T
ype(
S
earch
T
ype.
DFS
_Q
UERY
_T
HEN
_F
ETCH)
//设置分页(查询第一页,每页显示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 开头的索引信息,且只查询第二页的信息
@
T
est
public
void
test
S
plit
P
age(
){
//步骤:
//1.根据 currentPage 以及 pageSize,推导出 fromIndex
int
current
P
age=2
int
page
S
ize=2;
int
from
I
ndex=(current
P
age-1)*page
S
ize;
//分页查询
SearchResponse response=
client.
prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.regexpQuery(name:
“name”,query:“s*”
))
//设置分页信息
.setFrom(fromIndex)
.setSize(pageSize)
.
get();
//3.分析查询后的结果
Search
H
its
hits
=
response
.getHits();
for(
Search
H
its
hit
:hits){
System.out.println(hit.getSourceAsString());
}
}
(1) 运行结果
“C
:\P
rogram
F
iles\
J
ava\jdk1.8.0_131\bin\java.
exe
”
…
前端处理操作,用于进行全局的初始化…
{“name”: “
S
park”,“author”:“楚留香”,“last_version”:“2.3.4”
}
后处理操作,用于进行资源的释放…
(2) 数据库附图