lucene Collector 文档收集器

编写自定义的Colletor,可以对搜索返回的文档实现更精确的控制。

1.接口

1.1 Collector

org.apache.lucene.search.Collector
接口。用于聚合原始的搜索结果,实现排序及定制化的过滤。
LeafCollector org.apache.lucene.search.Collector.getLeafCollector(LeafReaderContext context)
接口内的方法。创建一个新的collector 来完成给定上下文的收集。
boolean org.apache.lucene.search.Collector.needsScores()
接口内的方法。标识是否需要计算文档得分。

1.2 LeafCollector

org.apache.lucene.search.LeafCollector
接口。它有collect()与setScorer()两个方法声明。见下面两行。
void org.apache.lucene.search.LeafCollector.collect(int doc) 
重要方法。这个docid是段内的docid,全局的docid=LeafReaderContext.docBase+doc。
void org.apache.lucene.search.LeafCollector.setScorer(Scorer scorer)
设置打分器。

2.抽象类

2.1 TopDocsCollector

org.apache.lucene.search.TopDocsCollector

抽象类,声明见下。

public abstract class TopDocsCollector<T extends ScoreDoc> implements Collector {...}

PriorityQueue<T> org.apache.lucene.search.TopDocsCollector.pq
字段。这个优先队列盛放top n 的文档。

2.2 TopScoreDocCollector

org.apache.lucene.search.TopScoreDocCollector
抽象类,声明见下。内含三个静态类。

public abstract class TopScoreDocCollector extends TopDocsCollector<ScoreDoc> {
	private static class PagingTopScoreDocCollector extends TopScoreDocCollector{...}
	abstract static class ScorerLeafCollector implements LeafCollector {...}
	private static class SimpleTopScoreDocCollector extends TopScoreDocCollector {...}
}

3.设置搜索的超时时间

org.apache.lucene.search.TimeLimitingCollector
这个类用于及时停止耗时的搜索。如果慢于设定阀值,当前搜索线程就会因抛出 TimeExceededException异常而停止。
org.apache.lucene.search.TimeLimitingCollector.TimeLimitingCollector(Collector collector, Counter clock, long ticksAllowed)
构造函数。用于对已有的Collector进行包装。

时间: 2024-08-02 05:53:43

lucene Collector 文档收集器的相关文章

XPS文档阅读器

XPS是微软的一个文档标准,就像Adobe的PDF,现在网上也有很多的PDF文档在线阅读器,而XPS文档阅读器很少几乎没有.今天我将我制作的这个XPS文档阅读器拿出来跟大家分享,也顺便期望某个高手能解决一些问题,共同进步.本XPS阅读器可以实现的效果如下:可以完美还原原来文档的原貌,添加页面导航功能(类似于Word中标题导航,如果是外部URL的链接那么将打开新页面),添加了翻页动画效果(提供了属性可以自定义翻页动画). 随着Silverlight4 的发布,Silverlight版的XPS阅读器

如何用delphi xe设计文档阅读器

问题描述 如何用delphi xe设计文档阅读器 如何用delphi xe设计文档阅读器求高手赐教!!!!!!!!!1

关于12306订票系统相关的文档收集整理

关于12306订票系统相关的文档收集整理 全部文章都来自网上: 简单整理了一下,希望对大家有所帮助 1. 12306ng开源项目组 http://www.12306ng.org/forum.php 2. 假如我来架构12306网站(二) - 浅谈系统需求调研 http://blog.csdn.net/jackxinxu2100/article/details/8458525 假如我来架构12306网站(一) - 概论 http://blog.csdn.net/jackxinxu2100/arti

《Excel高手捷径:一招鲜,吃遍天》一第25招 Excel文件保存显示信息不能通过“文档检查器”删除

第25招 Excel文件保存显示信息不能通过"文档检查器"删除 Excel高手捷径:一招鲜,吃遍天从网页上复制粘贴到表格时,单元格内有个空格删除不了,如图1-96所示. 用F5定位对象,提示找不到对象,保存关闭时出现提示对话框:"此文档中包含宏.ActiveX 控件.XML扩展包信息或 Web组件,其中可能包含个人信息,并且这些信息不能通过'文档检查器'进行删除",如图1-97所示. 出现这个问题的原因是由于工作簿包含宏.ActiveX控件等内容,而Excel被设置

CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案

 最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如下:   [html] view plaincopy     <?xml version="1.0"?>   <!DOCTYPE fontconfig SYSTEM "fonts.dtd">   <fontconfig>   <

多功能文档阅读器 Evereader

市面上文件管理应用很多,但是Evereader是一个多功能的 文件管理器,它能作为文档阅读器,语音记录器,PDF扫描仪,电子邮件附件保护的应用,更可作为一个秘密文件夹 ,全部包含在内了.这也正是为什么你会花5 - 6美元买一个文件阅读工具.因为它是多功能的,当然,今天限免了.需要的朋友不要错过售价:18→限免

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

Symbian文档阅读器 OfficeReader

问题描述 officereader 是 Symbian 平台上用来阅读 OpenDocument 格式文档的软件.主要特点:支持 OpenDocument text(.odt), spreadsheet(.ods) and presentation(.odp), OpenOffice.org Hybrid PDF支持直接从邮件, MMS, 蓝牙.文件浏览器和Web浏览器中打开文档可查看文档缩略图查看文档概要信息:标题.关键字.作者等文档统计:段落数.字数和页数缩放和全屏查看文档文档搜索文档更改记

文档查看器(Evince)打开中文PDF显示方块的问题

使用Evince打开部分pdf文件,特别是中国知网上下载的pdf论文时,常常显示为方块.evince,okular, epdfview的pdf功能均由xpdf的分支poppler提供.popplerhttp://www.aliyun.com/zixun/aggregation/11307.html">官方网站:http://poppler.freedesktop.org 必须先安装poppler-data sudo apt-get install poppler-data 如果已经安装了文