如何通过GBase的XDM Cluster 开发接口对查询结果排序

GBase XDM Cluster 开发接口 Java API 提供了对查询结果进行排序的方法:

从服务器接收到查询结果后,可以在自己的客户端对其进行排序。 要实现这一点,需要指定用来排序的属性名称,还需要指定是按升 序还是按降序排列。可以在客户端调用 LDAPSearchResult 对象的 sort 方法对查询结果进行排序。

调用这个方法时,必须传递一个比较器对象作为参数,这是一个可以实现 LDAPEntryComparator 接口的类的对象。GBase XDM Cluster 开发接口 Java API 中的 LDAPCompareAttrName 类可以实现这个接口,这个类指定条目之间如何比 较和排序。

在构造一个 LDAPCompareAttrName 对象时,需要指定要用于排序的条目,

也可以指定排序依据的规则。

例如,下面的代码段按姓 sn"升序排列:

...

LDAPConnection ld=new LDAPConnection();

ld.setShardingFlag(true); //设置分片开关,集群需要

ld.connect(...);

ld.setShardingValue(dc,sn); //设置分片信息。参数:库类型、sn 码,集

//群需要

LDAPSearchResults res=ld.search(...);

String[] sortAttrs={"sn"};

boolean[] ascending={true,false};

res.sort(new LDAPCompareAttrNames(sortAttrs,ascending));

...

注意:由于这里介绍的排序是在客户端进行的,所以作为排序依据的属性值必

须在查询结果中返回,如果返回的只是属性集的一个子集,必须确认其中包括

要在 LDAPCompareAttrName 构造函数中指定的属性。

如果还有未返回到客户端的查询结果,则 sort 方法会等到所有查询结果返

回后才进行排序,这之前它自动挂起。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值