gpt4 book ai didi

java - Elasticsearch 分页 - 最后一页返回太多结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:15 24 4
gpt4 key购买 nike

我的 Elasticsearch 查询返回 111 个结果,这意味着如果我对它们进行分页(每页 10 个结果)我应该有 12 页:11 个完整页面和 1 个包含单个结果的页面。

但是,我的最后一页仍然返回 10 个结果。它按预期返回最后一个结果,但也返回上一页的 9 个结果。如何禁用此行为并让它按预期返回单个结果?

我正在使用 Java API,代码如下:

SearchResponse response = client.prepareSearch("my_index")
.setTypes("my_output")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.queryStringQuery(query))
.setFrom(page).setSize(size)
.execute()
.actionGet();

最佳答案

ES查询中的from参数不是页码而是偏移量。所以如果你想要第 11 页,from 必须是 110(假设 size 是 10)而不是 11。

因此您可以使用@PathParam 继续传递页码,但是您传递给setFrom() 的值必须是page * size而不仅仅是 page

所以对于 page = 0,您将调用 setFrom(0),对于 page = 1,您将调用 setFrom(10) 等,对于 page = 11(即第 12 页),您将调用 setFrom(110)

关于java - Elasticsearch 分页 - 最后一页返回太多结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32712279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com