lucene Sort 文档排序

简介: 1.Sort org.apache.lucene.search.Sort 封装排序标准的类。 SortField[] org.apache.lucene.search.Sort.fields 字段。 org.apache.lucene.search.Sort.Sort(SortField field) 构造函数。按照指定的SortField进行排序。 org.apache.l

1.Sort

org.apache.lucene.search.Sort
封装排序标准的类。

SortField[] org.apache.lucene.search.Sort.fields
字段。

org.apache.lucene.search.Sort.Sort(SortField field)

构造函数。按照指定的SortField进行排序。

org.apache.lucene.search.Sort.Sort(SortField... fields)

上面函数的重载,指定多个field进行排序,它们的优先级由高到低。当且仅当前面的field比不出大小时,才会用到后面的field。

void org.apache.lucene.search.Sort.setSort(SortField... fields)

它被上面的构造函数调用。

2.SortField

org.apache.lucene.search.SortField
类,代表用于排序的Field。此field必须被索引。
org.apache.lucene.search.SortField.Type
内部静态枚举,表示排序的类型,如相关性分数排序、文档号排序、字符串顺序排序等。
org.apache.lucene.search.SortField.SortField(String field, FieldComparatorSource comparator)
构造函数。用自定义的comparator来排序。


3.FieldComparator

3.1 FieldComparatorSource

org.apache.lucene.search.FieldComparatorSource
抽象类,用于得到FieldComparator,定义见下。

public abstract class FieldComparatorSource {
  public abstract FieldComparator<?> newComparator(String fieldname, int numHits, int sortPos, boolean reversed) throws IOException;
}

3.2 FieldComparator

org.apache.lucene.search.FieldComparator<T>
抽象泛型类。T代表待比较得分的类型,通常是int或float。

int org.apache.lucene.search.FieldComparator.compare(int slot1, int slot2)
比较 slot1与slot2,当slot1>slot2时返回正数(确定是正数?)。

3.3 LeafFieldComparator

void org.apache.lucene.search.LeafFieldComparator

接口,定义见下。

public interface LeafFieldComparator {

  //设置slot为队列的尾部。对应评分最低的文档结果。
  void setBottom(final int slot);

  //将当前doc与队列的尾部进行比较。如果doc>bottom,返回正数。
  int compareBottom(int doc) throws IOException;

  int compareTop(int doc) throws IOException;

  //将新的命中结果,也就是这个doc copy至指定slot上,用于以后的比较。
  void copy(int slot, int doc) throws IOException;

  void setScorer(Scorer scorer);
}


4.DocComparator

org.apache.lucene.search.FieldComparator.DocComparator
FieldComparator的内部静态类,按照docid进行排序。定义见下。

public static final class DocComparator extends FieldComparator<Integer> implements LeafFieldComparator {...}


目录
相关文章
|
7月前
排序——sort的用法
排序——sort的用法
56 0
|
7月前
|
小程序
排序sort()排序用法
排序sort()排序用法
排序(Sort)(二)
排序(Sort)(二)
66 0
排序(Sort)(一)
排序(Sort)(一)
87 0
|
自然语言处理 算法 Java
11Lucene相关度排序
11Lucene相关度排序
61 0
|
存储
Elastic实战: 通过bucket_sort针对聚合后结果实现分页、排序
elaticsearch中实现聚合操作十分常见,同时es本身存储的数据量一般都比较大,因此聚合结果数量通常都比较多,所以针对聚合结果进行分页,也是非常常见的需求
671 0
Elastic实战: 通过bucket_sort针对聚合后结果实现分页、排序
|
数据库 开发者 索引
排序 sort|学习笔记
快速学习排序 sort。
241 0
排序 sort|学习笔记
|
开发者 索引
排序 sort | 学习笔记
快速学习排序 sort
|
Python
Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法
Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法
801 0
Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法
|
搜索推荐 Java Apache
Lucene7.2.1系列(二)luke使用及索引文档的基本操作
它有以下功能: - 查看文档并分析其内容(用于存储字段) - 在索引中搜索 - 执行索引维护:索引运行状况检查;索引优化(运行前需要备份) - 从hdfs读取索引 - 将索引或其部分导出为XML格式 - 测试定制的Lucene分析工具 - 创建自己的插件
2484 0