我有一个带有 TimeUUIDType 比较器的 cassandra 数据库和列系列。我使用 Hector 并使用 RandomPartitioner 拥有密钥空间。
我想进行切片查询以获取按 TimeUUID 排序的可分页结果。
SliceQuery<String, UUID, UserLike> query = HFactory.createSliceQuery(getKeyspace(), StringSerializer.get(), TimeUUIDSerializer.get(), UserLikesSerializer.get());
query = query.setKey(username);
query.setColumnFamily(SOME_CF);
当我使用此代码配置查询时:
query.setRange(new UUID(UUIDGen.createTime(Long.MAX_VALUE),UUIDGen.getClockSeqAndNode()), null, true, maxResults);
我检索的数据顺序不正确(可能是因为我使用了 RandomPartitioner - 正确吗?)当我使用以下代码配置查询时:
query.setRange(new UUID(UUIDGen.createTime(Long.MAX_VALUE),UUIDGen.getClockSeqAndNode()), new UUID(UUIDGen.createTime(0),UUIDGen.getClockSeqAndNode()), true, maxResults);
我收到一个错误:
InvalidRequestException(why:range finish must come after start in the order of traversal)
at me.prettyprint.hector.api.exceptions.HInvalidRequestException
有任何想法吗 ?