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.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 {...}
时间: 2024-07-28 14:41:02

lucene Sort 文档排序的相关文章

lucene Collector 文档收集器

编写自定义的Colletor,可以对搜索返回的文档实现更精确的控制. 1.接口 1.1 Collector org.apache.lucene.search.Collector 接口.用于聚合原始的搜索结果,实现排序及定制化的过滤. LeafCollector org.apache.lucene.search.Collector.getLeafCollector(LeafReaderContext context) 接口内的方法.创建一个新的collector 来完成给定上下文的收集. bool

DedeCMS全局标签arclist|文档列表

arclist|文档列表 标签名称:arclist标记简介:织梦常用标记,也称为自由列表标记,其中imglist.imginfolist.specart.coolart.autolist都是由该标记所定义的不同属性延伸出来的别名标记.功能说明:获取指定文档列表适用范围:全局使用基本语法:{dede:arclist&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; flag='h' typeid='' row='' c

使用 xsl 对 xml 文档进行动态排序,分页显示的扩展

xml|动态|分页|排序|显示 在 http://www.asptoday.com/articles/20000724.htm 有非常好的例子,是关于   使用 xsl 对 xml 文档进行动态排序,分页显示的.   主要使用三个文件:   default.asp 把 xml, xsl 文件串起来   getxml.asp 对 default 来说相当于 xml   sample.xsl 主要的格式编排工作在这里做   ======================================

Lucene 3.6.2入门(14) SolrJ操作索引和搜索文档以及整合中文分词

package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.sol

Word文档中表格怎么进行排序

  Word文档中表格怎么进行排序          1.将光标置于表格中的任意单元格中,在"开始"选项卡的"段落"选项组中,单击[排序]按钮,如图1所示. 图1 单击[排序]按钮 2.在"排序"对话框的"主要关键字"区域中,将"主要关键字"设置为某个目标列的名称,此处为包含数字的"销量"列,并在"类型"下拉列表框中选择"数字",选中"升

Word文档的表格中数据排序的方法

  Word文档的表格中数据排序的方法         1.在表格中单击将插入点光标放置到任意单元格中,然后在"表格工具-布局"选项卡中单击"数据"组中的"排序"按钮,如图1所示. 图1 单击"排序"按钮 2.打开"排序"对话框,在"主要关键字"下拉列表中选择排序的主要关键字,在"类型"下拉列表框中选择排序标准,然后单击其后的"降序"单选按钮选择以

lucene net-Lucene.net 创建索引 txt文档

问题描述 Lucene.net 创建索引 txt文档 怎么用Lucene.net对已有的txt文本创建索引,索引文件__r.cfs,_r.cfx,segments.gen,segments_m是编代码之后自动生成的还是怎么来的?大致步骤是什么样的. 解决方案 http://blog.csdn.net/xuezhongsong/article/details/4388241 解决方案二: Lucene.Net创建索引

Lucene如何将含有某一关键字的文档过滤掉?

问题描述 比如我要搜索含"房间"一词的文档,同时将含有"白色"字眼的搜索结果给筛掉,请问应该怎么写呢?之前从Lucene的API手册上发现有一个org.apache.lucene.search.TermsFilter的类可能可以实现这个功能,但在写代码的时候却老是引入不了这个类.不知道这个类放在哪个jar包里..当然,如果有其它更好的方法的话也可以分享一下. 问题补充:beneo 写道 解决方案 TermsFilter不是要你引入的,而是要和FilteredQuer

lucene 文档评分 及 CustomScoreQuery

1.评分 评分公式可见<lucence 文档评分公式> 2.解释 org.apache.lucene.search.Explanation 类,用于解释评分细节. String org.apache.lucene.search.Explanation.toString() 文本格式输出. String org.apache.lucene.search.Explanation.toHtml() html格式输出.例子见图2-1. 图2-1 toHtml()格式的explanation Expla