Bobo Browse-分组统计后如何按指定的方式排序返回
来源:互联网 发布:网络教育研究生吗 编辑:程序博客网 时间:2024/05/09 23:57
简介
当通过指定的facets对文档进行统计后按指定的排序方式返回。
默认可指定的排序方式
Bobo Browse 的API中提供了2种默认的排序方式:
如下面根据颜色统计的例子:
根据值升序排序:
程序中的代码设置如下:
faceSpec.setOrderBy(FacetSortSpec.OrderValueAsc); 输出结果如下:
- blue (2)
- green (19)
- red (21)
- yellow (20)
根据结果数降序排序:
程序中的代码设置如下:
faceSpec.setOrderBy(FacetSortSpec.OrderHitsDesc);
输出结果如下:
- red (21)
- yellow (20)
- green (19)
- blue (2)
自定义排序
它可以通过继承API实现你特有的排序方式:
首先,实现ComparatorFactory 接口:
public interface ComparatorFactory{ Comparator<Integer> newComparator(FieldValueAccessor fieldValueAccessor,int[] counts); Comparator<BrowseFacet> newComparator();}
如下面的例子,自定义一个实现ComparatorFactory 接口的类按统计结果降序排序:
public class FacetHitcountComparatorFactory implements ComparatorFactory {
public Comparator<Integer> newComparator(FieldValueAccessor valueList,
finalint[] counts) {
return new Comparator<Integer>(){
public int compare(Integer f1,Integer f2) {
int val = counts[f1] - counts[f2];
if (val==0){
val=f2-f1;
}
return val;
}
};
}
public Comparator<BrowseFacet> newComparator() {
return new Comparator<BrowseFacet>(){
public int compare(BrowseFacet f1, BrowseFacet f2) {
int val = f1.getHitCount() - f2.getHitCount();
if (val==0){
val=f1.getValue().compareTo(f2.getValue());
}
return val;
};
}
}
接着, 实例化这个类到FacetSpec中,排序order by指定枚举类型为OrderByCustom:
FacetHitcountComparatorFactory myComparatorFactory = new FacetHitcountComparatorFactory();
facetSpec.setOrderBy(FacetSortSpec.OrderByCustom);facetSpec.setCustomComparatorFactory(myComparatorFactory);
注意,如果没有设置setCustomComparatorFactory,而排序类型设为OrderByCustom,则会抛出IllegalArgumentException 异常。
- Bobo Browse-分组统计后如何按指定的方式排序返回
- 利用bobo-browse 实现lucene的分组统计功能
- 利用bobo-browse 实现lucene的分组统计功能
- 利用bobo-browse 实现lucene的分组统计功能
- bobo-browse为Lucene添加分组统计
- [lucene]初探bobo-browse
- bobo-browse 使用总结
- 找出所有符合条件的记录的指定字段并分组统计个数,返回指定格式。
- 分组排序后,如何取得组的第一条记录
- [Oracle SQL] 使用rollup分组统计按统计结果分组排序显示的问题
- (SQL语句)按指定时间段分组统计
- GetFiles()后对文件按指定方式排序
- girdview分组,统计,排序的解决方案
- girdview分组,统计,排序的解决方案
- girdview分组,统计,排序的解决方案
- 聚合分组指定排序
- 关于Lucene分组查询后的排序
- mysql分组排序去数据的方式
- C51 库函数(3)
- 自由控制显示图片大小,鼠标拖动图片看效果
- 转变
- 第一阶段的比赛
- 枚举
- Bobo Browse-分组统计后如何按指定的方式排序返回
- 图片随意移动,可以拖动图片
- 线程的状态及通信
- 开发中i18n问题
- 成功软件项目管理的奥秘——第1章 项目管理入门
- 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)
- 用javascript实现输入框的输入推荐代码
- 难道不疼吗?
- 关于C++和C的标准库