在lucene中禁用分数以加快搜索速度

时间:2015-07-31 02:45:58

标签: search lucene information-retrieval

目前我正在使用lucene,版本是4.10.3。

但我不在乎搜索中的分数和重量,我只需要满足查询的文件。所以我只想要返回发布列表以加快搜索速度。

我尝试了一些忽略分数的方法,例如重写TermQuery,禁用TermWeight和TermScore。它有效,搜索速度加快,但是要重写的查询太多,这与QueryParser不兼容。

我还尝试ConstantScoreQuery并尝试重写ConstantScoreQuery,但失败了。似乎ConstantScoreQuery使用其所包含的查询的权重和分数,例如TermWeightTermScorer,因此无法加快搜索速度,因为权重和分数仍在计算中。也许我做错了,但我做了一些测试,new ConstantScoreQuery(new TermQuery())的搜索时间与new TermQuery()相同。

我试图重写收藏家来取代TopScoreCollector,但是社交和体重仍然是钙化的,新的收藏家不会加速太多。

那么有没有办法在搜索中完全禁用分数以加快搜索速度。我认为重写ConstantScoreQuery可能有效,将其设为TrueConstantScoreQuery并包装其他查询,但我不知道如何做到这一点。

0 个答案:

没有答案