Elasticsearch 分页
elk
it书童
2019-10-04 11:00:29
0赞
0踩
542阅读
0评论
和SQL使用LIMIT
关键字返回只有一页的结果一样,Elasticsearch接受from
和size
参数:
size: 结果数,默认10
from: 跳过开始的结果数,默认0
# 分页
GET /heros/_search?size=2&from=1
# 结果
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 2,
"successful" : 2,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "heros",
"_type" : "_doc",
"_id" : "qzYKOW0B3p3gGxF6T7bF",
"_score" : 1.0,
"_source" : {
"name" : "萧峰",
"gender" : "男",
"skill" : "降龙十八掌",
"age" : 30
}
},
{
"_index" : "heros",
"_type" : "_doc",
"_id" : "qTbyOG0B3p3gGxF6LrY4",
"_score" : 1.0,
"_source" : {
"name" : "郭靖",
"gender" : "男",
"skill" : "降龙十八掌",
"age" : 52
}
}
]
}
}
在集群系统中深度分页
为了理解为什么深度分页是有问题的,让我们假设在一个有5个主分片的索引中搜索。当我们请求结果的第一页(结果1到10)时,每个分片产生自己最顶端10个结果然后返回它们给请求节点(requesting node),它再排序这所有的50个结果以选出顶端的10个结果。
现在假设我们请求第1000页——结果10001到10010。工作方式都相同,不同的是每个分片都必须产生顶端的10010个结果。然后请求节点排序这50050个结果并丢弃50040个!
你可以看到在分布式系统中,排序结果的花费随着分页的深入而成倍增长。这也是为什么网络搜索引擎中任何语句不能返回多于1000个结果的原因。
- 上一篇: Elasticsearch 判断文档是否存在
- 下一篇: Elasticsearch 分词

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/78/elasticsearch-page
精品付费
个人开发者通过payjs接入微信支付
2815
0
这一次,真正掌握composer
1598
0
相关推荐
kibana
643
0
Elastic Stack简介
563
0
Elasticsearch安装与插件
596
0
Elasticsearch 集群
648
0
Elasticsearch 结构化查询
547
0
Elasticsearch 映射
566
0
Elasticsearch 指定响应字段
525
0
Elasticsearch 增删改查
543
0
Elasticsearch 分词
738
0
Elasticsearch 全文搜索
545
0