- 浏览: 146779 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (69)
- Maven (1)
- lucene (22)
- bobo zoie (6)
- eclipse (5)
- Nexus (1)
- Git (1)
- trac (1)
- RMI (2)
- svn (0)
- Protocol buffer (0)
- sensei (6)
- JMX (2)
- Faceted search (1)
- Linux (1)
- Cassandra (1)
- Zookeeper (3)
- zoie (1)
- jmap (1)
- mongodb (2)
- 百度百科 (2)
- 词库 (2)
- 抓取 (2)
- IndexTank (1)
- LinkedIn (4)
- norbert (3)
- 分布式 (2)
- senseidb (2)
- Thrift (1)
- scala (1)
- 搜索引擎 (1)
- 质量 (1)
- Nosql (1)
- Jaccard (1)
- Mahout (1)
最新评论
-
bluky999:
@Mark
怎样量化评价搜索引擎的结果质量 -
baso4233:
非常感谢,我跑通了。途中出现了,java.lang.Unsup ...
norbert 高并发分布式服务例子 examples (二) -
yangsong158:
rabbit9898 写道xiansuanla 写道我运行 m ...
JMX 入门例子 -
rabbit9898:
xiansuanla 写道我运行 main方法以后 cmd 里 ...
JMX 入门例子 -
xiansuanla:
我运行 main方法以后 cmd 里面运行 jconsole ...
JMX 入门例子
注意:
在lucene2.9中,排序的字段域必须indexed但是不能tokenized。因为虽然tokenized后虽然可以排序,但是有可能不是你想要的结果,因为tokenized可能会去除停用词或者大小写转换等。
(in Lucene 2.9 and when reading java doc for the Sort class I noticed
it says "The field must be indexed, but should not be tokenized".
Sorting on tokenized fields can work, but may not necessarily do what
you expect, depending on your requirements and how the field is
tokenized. )
Lucene的默认排序是按照Document的得分进行排序的。当检索结果集中的两个Document的具有相同的得分时,默认按照Document的ID对结果进行排序。
下面研究几种设置/改变检索结果排序的方法。
1、改变Document的boost(激励因子)
改变boost的大小,会导致Document的得分的改变,从而按照Lucene默认的对检索结果集的排序方式,改变检索结果中Document的排序的提前或者靠后。在计算得分的时候,使用到了boost的值,默认boost的值为1.0,也就说默认情况下Document的得分与boost的无关的。一旦改变了默认的boost的值,也就从Document的得分与boost无关,变为相关了:boost值越大,Document的得分越高。
2、改变Field的boost(激励因子)
改变Field的boost值,和改变Document的boost值是一样的。因为Document的boost是通过添加到Docuemnt中Field体现的,所以改变Field的boost值,可以改变Document的boost值。
3、使用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进行排序
4、直接使用SortField实现排序
关于SortField类,在其内部定义了7种构造方法:
public SortField (String field, boolean reverse)//根据某个域(field)的名称构造SortField, reverse为false为升序
public SortField (String field, int type)
public SortField (String field, int type, boolean reverse)
public SortField (String field, Locale locale)
public SortField (String field, Locale locale, boolean reverse)
public SortField (String field, SortComparatorSource comparator)
public SortField (String field, SortComparatorSource comparator, boolean reverse)
type对应的值分别为:
SortField. SCORE 按积分排序
SortField. DOC 按文档排序
SortField. AUTO 域的值为int、long、float都有效
SortField.STRING 域按STRING排序
SortField..FLOAT
SortField.LONG
SortField.DOUBLE
SortField.SHORT
SortField.CUSTOM 通过比较器排序
SortField.BYTE
5、自定义排序
Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在了解具体实现方法之前先来看看这两个接口的定义吧
在lucene2.9中,排序的字段域必须indexed但是不能tokenized。因为虽然tokenized后虽然可以排序,但是有可能不是你想要的结果,因为tokenized可能会去除停用词或者大小写转换等。
(in Lucene 2.9 and when reading java doc for the Sort class I noticed
it says "The field must be indexed, but should not be tokenized".
Sorting on tokenized fields can work, but may not necessarily do what
you expect, depending on your requirements and how the field is
tokenized. )
Lucene的默认排序是按照Document的得分进行排序的。当检索结果集中的两个Document的具有相同的得分时,默认按照Document的ID对结果进行排序。
下面研究几种设置/改变检索结果排序的方法。
1、改变Document的boost(激励因子)
改变boost的大小,会导致Document的得分的改变,从而按照Lucene默认的对检索结果集的排序方式,改变检索结果中Document的排序的提前或者靠后。在计算得分的时候,使用到了boost的值,默认boost的值为1.0,也就说默认情况下Document的得分与boost的无关的。一旦改变了默认的boost的值,也就从Document的得分与boost无关,变为相关了:boost值越大,Document的得分越高。
2、改变Field的boost(激励因子)
改变Field的boost值,和改变Document的boost值是一样的。因为Document的boost是通过添加到Docuemnt中Field体现的,所以改变Field的boost值,可以改变Document的boost值。
3、使用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进行排序
4、直接使用SortField实现排序
关于SortField类,在其内部定义了7种构造方法:
public SortField (String field, boolean reverse)//根据某个域(field)的名称构造SortField, reverse为false为升序
public SortField (String field, int type)
public SortField (String field, int type, boolean reverse)
public SortField (String field, Locale locale)
public SortField (String field, Locale locale, boolean reverse)
public SortField (String field, SortComparatorSource comparator)
public SortField (String field, SortComparatorSource comparator, boolean reverse)
type对应的值分别为:
SortField. SCORE 按积分排序
SortField. DOC 按文档排序
SortField. AUTO 域的值为int、long、float都有效
SortField.STRING 域按STRING排序
SortField..FLOAT
SortField.LONG
SortField.DOUBLE
SortField.SHORT
SortField.CUSTOM 通过比较器排序
SortField.BYTE
5、自定义排序
Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在了解具体实现方法之前先来看看这两个接口的定义吧
发表评论
-
基于sensei+lucene的分布式搜索终于上线了-2012-12-08
2011-12-08 13:26 1572基于sensei+lucene的分布式搜索终于上线了 ... -
[转载] sensei分布式实时搜索系统源码解析(二) 分布式Search的流程
2011-07-22 14:57 1426看来自己很懒,发现前同事的sensei 研究了 转载: ht ... -
[转载] sensei分布式实时搜索系统源码解析(一) senseiServer的启动及若干概念
2011-07-22 14:55 1738看来自己很懒,发现前同事的sensei 研究了 转载:htt ... -
lucene分布式搜索sensei的使用及完善
2011-07-22 14:32 3495原创文章,转载请注明 ... -
转载:几种常见的基于Lucene的开源搜索解决方案对比
2011-04-06 14:38 1299一 直接使用 Lucene ( http://lucene ... -
转载: Apache Zookeeper入门1
2011-04-06 14:36 1859源: http://www.javabloger.com/ar ... -
转载:Lucene查询语法详解
2011-04-02 10:33 1056英文原文地址:http: ... -
各种字符串Hash函数比较
2011-02-12 14:54 4075Java自带的字符串hash函数: public ... -
Lucene MoreLikeThisQuery 例子 备注
2011-01-06 11:22 14111。 编码问题: MoreLikeThisQuery中的 ... -
Lucene MoreLikeThisQuery 例子
2011-01-04 13:42 2785要做一个跟文章标题相关的新闻,本来想简单做一下,就是把标 ... -
lucene 3.0 分词例子 转载
2010-12-27 17:30 1871源:http://hxraid.iteye.com/blog ... -
lucene基本概念
2010-12-03 15:51 1115一、lucene索引的建立 1 ... -
[转载] lucene使用与优化
2010-12-03 10:14 1025源:http://www.cnblogs.com/bysshi ... -
[转载] 几种常见的基于Lucene的开源搜索解决方案对比
2010-12-02 16:07 864源:http://blog.fulin.org/201 ... -
lucene中的Token, TokenStream, Tokenizer, Analyzer
2010-11-22 10:41 1304转载: Token: 如果一个字段被token化,这表示它经 ... -
Lucene3.0的几种分词系统
2010-11-17 17:25 12531、 StopAnalyzer StopAnalyze ... -
当前几个主要的Lucene中文分词器的比较
2010-11-17 12:35 12871. 基本介绍: paoding :Lucene中 ... -
lucene score explain 评分解释说明
2010-11-16 17:29 2221通过Searcher.explain(Query qu ... -
lucene 2010 大会资料 Lucene Revolution 2010
2010-10-27 15:41 921lucene 2010 大会资料资料下载 http://ww ... -
bobo-browse 的分组统计(Faceted Search)
2010-10-25 16:43 2576基于lucene的bobo-browse 的分组统计(Face ...
相关推荐
lucene排序、设置权重、优化、分布式搜索.pdf
lucene自定义排序实现,大家有兴趣关注我的博客http://blog.csdn.net/wuyinggui10000/article/category/3173543
Lucene根据关键词出现次数排序以及自定义排序,可以自定义优先级,包含list字段排序与pom等
lucene的排序过滤和分页,lucene开发技术,lucene下载
在一定深度介绍LUCENE的排序算法和打分公式。
18.Lucene排序 共6页 19.Lucene过滤 共4页 20.Lucene分词器1 共3页 21.Lucene分词器2 共9页 22.Lucene分词器3 共4页 23.Lucene项目实战1 共6页 24.Lucene项目实战2 共6页 25.Lucene项目实战3 共6页 26.Lucene项目...
NULL 博文链接:https://iamyida.iteye.com/blog/2197839
传统上,人们将信息检索系统返回结果的排序称为"相关排序" (relevance ranking) ,隐含其中各条目的顺序反映结果和查询的相关程度。
lucene4.3 按坐标距离排序,里面写了个简单的例子。运行就行
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
随着Web技术的迅速发展,提供个性化服务的搜索引擎技术受到用户的广泛关注,网页排序是其中的关键技术之一...实验结果证明,改进后的排序算法能够较好地提高信息检索的准确度,为用户带来了优于Lucene自身排序的搜索体验。
NULL 博文链接:https://iamyida.iteye.com/blog/2201372
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎
lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例
Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在...
Lucene7.4官方示例,内含若干官方实例,可用于学习Lucene
lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...