关于Lucene的自定义Sort排序

参考:http://blog.csdn.net/wxwzy738/article/details/8585786

使用Sort排序工具实现排序 
Lucene在查询的时候,可以通过以一个Sort作为参数构造一个检索器IndexSearcher,在构造Sort的时候,指定排序规则。 
调用sort进行排序的方法是IndexSearcher.search,例如: 
IndexSearcher.search(query,sort);

关于Sort类,在其内部定义了6种构造方法:

public Sort() // 
    public Sort(SortField field)  //通过构造某个域(field)的SortField对象根据一个域进行排序 
    public Sort(SortField[] fields) //通过构造一组域(field)的SortField对象组实现根据多个域排序 
    public Sort(String field) //根据某个域(field)的名称构造Sort进行排序 
    public Sort(String field, boolean reverse) //根据某个域(field)的名称构造SortField进行排序,reverse为true为升序 
    public Sort(String[] fields) //根据一组域(field)的名称构造一组Sort进行排序

时间: 2024-10-03 10:48:56

关于Lucene的自定义Sort排序的相关文章

九度oj 题目1069:查找学生信息 续: 自定义sort排序规则

上一题中用到了二分查找,而二分查找的前提条件就是原数据有序,故需要先进行排序. 考虑用stl 中的sort函数对数据进行排序:由于不是基本数据类型而是自定义结构体不能自动排序,就需要给出排序规则. 方法有两种: 1.写  cmp函数 bool cmp(stu a,stu b){ return strcmp(a.stu_no,b.stu_no)<0 ; } 然后调用sort(buf,buf+n,cmp); 2.直接定义该结构体的小于运算符(sort只需要利用小于关系排序)来说明排序规则 struc

关于vector中自定义sort排序规则

本文是从我一个实际的程序摘出来,因此没有太多的叙述性的东西 首先呢 sort需要一个头文件  #include<algorithm> 这种排序主要针对的是自定义的vector类型 如: typedef struct AD {     int len;     string name; }ad; vector<ad> adtemp; 对adtemp排序,首先需要自己设定排序规则,当然了还是根据int型变量比较好排序啦,因为是自定义结构体所以方便和实用为关键哈 ok 排序规则 //这是

Lucene 中自定义排序的实现

使用Lucene来搜索内容,搜索结果的显示顺序当然是比较重要的.Lucene中Build-in的几个排序定义在大多数情况下是不适合我们使用的.要适合自己的应用程序的场景,就只能自定义排序功能,本节我们就来看看在Lucene中如何实现自定义排序功能. Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和 ScoreDocCom

廖雪峰js教程笔记4 sort排序的一些坑

排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来.通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序. JavaScript的Array的sort()方法就是用于排序的,但是

STL中sort排序算法第三个参数_Compare的实现本质

关于C++ STL vector 中的sort排序算法有三种自定义实现,它们本质上都是返回bool类型,提供给sort函数作为第三个参数. 重载运算符 全局的比较函数 函数对象 我认为从实现方式看,重载运算符和函数对象实现本质上是一样的:两者都是括号运算符的重载. 重载运算符利用了泛型模板,再重载模板中的括号运算福,接着重载里面的大于小于操作符: 而函数对象则是直接针对自己的对象重载括号运算符. 下图是其中一个泛型模板比较函数,位于头文件stl_function.h中. 『注:本文来自博客园“小

List&lt;T&gt;.Sort() 排序的用法

List<T> 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下: class Program { static Func<Model, int> where = a => a.id; static Func<Model, bool> wherelambda = a => a.id < 3; static void Main(string[] a)

[转]LeetCode: 128 Largest Number (自定义比较函数排序)

题目: Given a list of non negative integers, arrange them such that they form the largest number. For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330. Note: The result may be very large, so you need to return a string instead of

SQL学习之使用order by 按照指定顺序排序或自定义顺序排序

我们通常需要根据客户需求对于查询出来的结果给客户提供自定义的排序方式,那么我们通常sql需要实现方式都有哪些,参考更多资料总结如下(不完善的和错误望大家指出): 一.如果我们只是对于在某个程序中的应用是需要按照如下的方式排序,我们只需在SQL语句级别设置排序方式: 1.按照oracled的默认方式排序:select * from table_name order by  col_name  (desc|asc);(默认为升序或无序对于升降只有在数字字段); 2.按照自定义的顺序排序:   sel

[C++]LeetCode: 128 Largest Number (自定义比较函数排序)

题目: Given a list of non negative integers, arrange them such that they form the largest number. For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330. Note: The result may be very large, so you need to return a string instead of