Jam*_*ker 4 java elasticsearch
我的 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();
Run Code Online (Sandbox Code Playgroud)
fromES查询中的参数不是页码而是偏移量。所以如果你想要第 11 页,from必须是 110(假设size是 10)而不是 11。
因此,您可以继续使用 传递页码@PathParam,但传递给的值setFrom()必须是page * size,而不仅仅是page.
因此,对于page = 0,您将调用setFrom(0),对于page = 1您将调用setFrom(10)等,对于page = 11(即第 12 页),您将调用setFrom(110)。
| 归档时间: |
|
| 查看次数: |
3849 次 |
| 最近记录: |