Sorting 使用比较器分页谓词问题

Sorting 使用比较器分页谓词问题,sorting,pagination,paging,hazelcast,predicate,Sorting,Pagination,Paging,Hazelcast,Predicate,在IMap上应用PagingPredicate时,不对整个集合进行排序。它只是对给定的页面大小进行排序。但我希望先对集合进行排序,然后应用分页并提供结果 我使用以下构造函数: PagingPredicate pagingPredicate = new PagingPredicate(predicate, comparator, 100); Collection<Map<String, Object>> pagingResults = data.values(pagingP

在IMap上应用PagingPredicate时,不对整个集合进行排序。它只是对给定的页面大小进行排序。但我希望先对集合进行排序,然后应用分页并提供结果

我使用以下构造函数:

PagingPredicate pagingPredicate = new PagingPredicate(predicate, comparator, 100);
Collection<Map<String, Object>> pagingResults = data.values(pagingPredicate);
PagingPredicate PagingPredicate=新的PagingPredicate(谓词,比较器,100);
集合pagingResults=data.values(pagingPredicate);
缓存中的数据几乎有90000条记录。我需要完整排序集合中的前100条记录,但它正在对IMap中的前100条记录进行排序

请问,你能帮我解决这个问题吗


hazelcast版本-3.7.3

分页谓词对所有记录进行内部排序。Hazelcast将记录进行分区。排序在每个分区上进行,并选择前100条记录。因此,对于271(默认)分区,您的本地磁盘上将有27100条记录。这些记录将被重新合并和排序,并返回结果前100条记录


例如,如果您有1-90000条记录,PagingPredicate应该为pagingSize=100返回1-100。

PagingPredicate对所有记录进行内部排序。Hazelcast将记录进行分区。排序在每个分区上进行,并选择前100条记录。因此,对于271(默认)分区,您的本地磁盘上将有27100条记录。这些记录将被重新合并和排序,并返回结果前100条记录


例如,如果您有1-90000条记录,pagingSize=100,pagingspredicate应该返回1-100。

感谢您的回复。我在单节点上运行,IMap保存了近90000条记录。当我使用PagingPredicate时,页面大小更大,结果通过分页支持进行排序。但是,当pageSize设置为100或200并尝试获取第一页(零)时,则无法提供正确的结果。下面是一个测试,感谢您的回复。我在单节点上运行,IMap保存了近90000条记录。当我使用PagingPredicate时,页面大小更大,结果通过分页支持进行排序。但是当pageSize给定为100或200并尝试获取第一页(零)时,它没有提供正确的结果