首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何基于client.Search结果弹性搜索巢创建分页

如何基于client.Search结果弹性搜索巢创建分页
EN

Stack Overflow用户
提问于 2016-06-16 02:02:12
回答 1查看 1.4K关注 0票数 0

有什么方法可以检索client.Search的所有结果(我认为可以使用scroll API完成),并在显示结果时为这些结果创建分页?有来自ES的API吗?

或者使用From()size(),可以做到吗?

比如说,我在索引上有10万个文档,当我搜索一个关键字时,它会产生大约200个结果。我如何使用卷轴,从和大小来显示他们?

提亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-16 05:20:15

我们使用fromsize选项来实现弹性搜索结果的分页。代码片段可以如下所示:

代码语言:javascript
复制
def query(page)
  size = 10
  page ||= 1
  from = (page-1) * size 

  # elasticsearch query with from * size options
end 

您可能需要知道实现分页的结果总数,而不需要发送额外的计数请求。要获得总的结果,可以使用响应的total字段。

===更新的

如果您想获得第一页的搜索结果,那么可以使用query(1)。如果您想获得第二个页面的搜索结果,那么您可以使用query(2)等等。

scroll的用途略有不同。假设您需要获得搜索结果的所有记录,结果的数量太大(例如,数百万的结果)。如果您一次检索所有数据,由于负载高,会出现一种或多个内存问题。在这种情况下,可以使用scroll一步一步地获取结果。

对于分页,不需要获取搜索结果的所有数据。您只需要获取特定页面的some数据。在这种情况下,您可能需要只使用queryfromsize选项,而不是scroll

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37848704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档