在我的项目中,有一项检索文档列表的服务。到目前为止,检索它们的方法是使用分页对象,这样我们就不会将所有元素发送回前端。
public Page<Document> findDocumentPage(Pageable pageable) {
return this.documentService.findAllByPage(pageable);
}
问题是我需要所有页面的文档的全局索引。例如,假设我有一个包含查询后结果的页面列表:
firstResult:{
page: 1,
document_list: [{doc:{ id: a, content: ''}},
{doc:{ id: b, content: ''}},
{doc:{ id: c, content: ''}}]
}
secondResult:{
page: 2,
document_list: [{doc:{ id: d, content: ''}},
{doc:{ id: e, content: ''}},
{doc:{ id: f, content: ''}}]
}
这些结果是相互独立的。有没有办法告诉 id 为“e”的文档是所有页面结果中的第五个元素,而无需访问上一页的结果。页面也可以有不同的大小,有些可能有 30 个结果,其他 20 个,它可以是 x。
我可以在后端存储一个包含前一页元素数量的列表,然后根据页码、当前页面的索引和前一页的大小计算索引。然而,这对我来说似乎不是一个很好的解决方案。