lucene Collector 文档收集器

原创 2016年05月31日 13:21:19

编写自定义的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进行包装

Collector(网络资源收集器)

  • 2008年08月21日 10:56
  • 2.98MB
  • 下载

Java8中重要的收集器Collector

Collector介绍Java8的stream api能很方便我们对数据进行统计分类等工作,函数式编程的风格让我们方便并且直观地编写统计代码。例如:Stream stream = Stream.ite...
  • zxc123e
  • zxc123e
  • 2017年03月29日 16:30
  • 1339

VMware vSphere Web Services SDK编程指南(七)- 7 属性收集器(Property Collector)

7 属性收集器 (Property Collector) vSphere 服务器为数据访问和变化监控提供了 PropertyCollector 服务。使用 PropertyCollector 可获取到...

Java8的流Stream与收集器Collector详解

流Stream概述Stream可以说是java8的一大亮点。java8中的Stream对集合功能进行了增强。在日常开发中,我们免不了要经常对集合对象进行处理,而在java8以前,对于集合的处理完全是由...

Java垃圾收集器(Garbage Collector)

一、垃圾收集(Garbage Collection, GC)需要完成的3件事情: 1、哪些内存需要回收? 2、什么时候回收? 3、如何回收? 总结成一句话:GC对什么东西,在什么时间,做了什么...

Cocos2dx3.2编写常用UI组件(三)收集器效果Collector

前言: 在游戏中,我们经常可以看到,获取分数后,分数会自动升到对应的分数栏上面。今天我们就来实现这种效果 正文: 这种效果实现起来其实非常的简单,只需要对生成出来的分数(通常是一个Sprite或Nod...

java8 自定义收集器Collector

java8 自定义收集器Collector

jdk8-Collector收集器之并行流陷阱与原理

收集器Collector是jdk8中最为重要的接口之一,一个Collector可分为5个部分(第五个是我自己加上的): 1、supplier 2、accumulator 3、combiner ...

Cocos2d-x 3.2编写常用UI组件(三)收集器效果Collector

在游戏中,我们经常可以看到,获取分数后,分数会自动升到对应的分数栏上面。今天我们就来实现这种效果。 正文: 这种效果实现起来其实非常的简单,只需要对生成出来的分数(通常是一个Sprite或...

文档收集器

  • 2006年03月16日 00:00
  • 108KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lucene Collector 文档收集器
举报原因:
原因补充:

(最多只允许输入30个字)