禁用Lucene(.NET)中的计分

禁用Lucene(.NET)中的计分,lucene,lucene.net,Lucene,Lucene.net,搜索时,是否有方法禁用任何查询的评分 这种情况是,用户通过尝试不同的单词、短语等组合来改进他的查询,并且需要对点击次数进行实时(至少相当快)响应 当由于评分而导致数百万次点击时,搜索时间会减慢很多,但用户实际上并不关心所有这些文档。一旦他看到点击率超过100万,他就会开始在查询中添加额外的单词。一个“相关性排序”选项可以让他快速完成这项任务,同时在命中率合理的情况下重新开始得分 这可能吗 我使用的是Lucene.NET 2.9.2,但据我所知,它与Java版本完全相同。在Lucene 2.9中,

搜索时,是否有方法禁用任何查询的评分

这种情况是,用户通过尝试不同的单词、短语等组合来改进他的查询,并且需要对点击次数进行实时(至少相当快)响应

当由于评分而导致数百万次点击时,搜索时间会减慢很多,但用户实际上并不关心所有这些文档。一旦他看到点击率超过100万,他就会开始在查询中添加额外的单词。一个“相关性排序”选项可以让他快速完成这项任务,同时在命中率合理的情况下重新开始得分

这可能吗


我使用的是Lucene.NET 2.9.2,但据我所知,它与Java版本完全相同。

在Lucene 2.9中,您可以使用一个自定义收集器,它可以做您想做的事情(无需评分即可获得点击率)


试试看。这只会返回命中率,不会对其进行评分。

谢谢您提供的信息。我尝试创建一个NullCollector(不做任何事情),但它确实有效。不幸的是,搜索时间与默认收集器相同。时间不是花在收集器中,而是花在TermScorer中,它仍然为结果集中的每个文档调用我的NullCollector。这并不奇怪。为了找到用于查询的文档,Lucene必须查找与术语匹配的文档。如果实时性能对您来说真的很重要,那么可以考虑拆分索引并并行搜索它们