将Lucene HitCollector(2.x)迁移到Collector(3.x)
在我们的一个项目中,我们使用一个旧的Lucene版本(2.3.2)。我现在正在查看当前的Lucene版本(3.5.0),并尝试重新编写旧代码。在旧项目中,我们扩展了TopFieldDocCollector以在collect()方法中执行一些额外的过滤。然而,我在理解新的收集器类时遇到了一些困难,我找不到一个好的例子 1) 方法setScorer()。如何/从何处获取记分器对象 2) 方法collect()。我想我需要创建自己的收藏并存储我感兴趣的文档,对吗 3) 当扩展TopDocsCollector时,我需要实现一个PriorityQueue以在构造函数中使用,对吗?它似乎没有标准的实现。但我仍然需要自己的集合来存储docid(或者更确切地说,ScoreDocs),并在搜索完成后调用populateResult 总的来说,扩展收集器似乎比扩展TopDocsCollector容易(很多),但也许我遗漏了一些东西将Lucene HitCollector(2.x)迁移到Collector(3.x),lucene,Lucene,在我们的一个项目中,我们使用一个旧的Lucene版本(2.3.2)。我现在正在查看当前的Lucene版本(3.5.0),并尝试重新编写旧代码。在旧项目中,我们扩展了TopFieldDocCollector以在collect()方法中执行一些额外的过滤。然而,我在理解新的收集器类时遇到了一些困难,我找不到一个好的例子 1) 方法setScorer()。如何/从何处获取记分器对象 2) 方法collect()。我想我需要创建自己的收藏并存储我感兴趣的文档,对吗 3) 当扩展TopDocsCollec
另外:最简单的收集器示例是TotalHitCountCollector 多谢各位。很高兴了解setScorer(),我不理解API文档,认为我必须自己创建记分器并传递它才能获得分数。