目前我正在使用lucene,版本是4.10.3。
但我不在乎搜索中的分数和重量,我只需要满足查询的文件。所以我只想要返回发布列表以加快搜索速度。
我尝试了一些忽略分数的方法,例如重写TermQuery
,禁用TermWeight和TermScore。它有效,搜索速度加快,但是要重写的查询太多,这与QueryParser
不兼容。
我还尝试ConstantScoreQuery
并尝试重写ConstantScoreQuery
,但失败了。似乎ConstantScoreQuery
使用其所包含的查询的权重和分数,例如TermWeight
和TermScorer
,因此无法加快搜索速度,因为权重和分数仍在计算中。也许我做错了,但我做了一些测试,new ConstantScoreQuery(new TermQuery())
的搜索时间与new TermQuery()
相同。
我试图重写收藏家来取代TopScoreCollector
,但是社交和体重仍然是钙化的,新的收藏家不会加速太多。
那么有没有办法在搜索中完全禁用分数以加快搜索速度。我认为重写ConstantScoreQuery
可能有效,将其设为TrueConstantScoreQuery
并包装其他查询,但我不知道如何做到这一点。