我知道solr使用浮点数的规范化来节省内存并通过将它们映射到2字节表示来加速计算。
所以我的问题 - 是否可以使用任何浮点数来提升我在查询中的条件(即a^0.00001 +b^0.11111
),还是我应该以某种方式将它们正常化以不失去solr / lucene计算的精度?比如说它们在1到1000之间,并使它们的功率为2。
答案 0 :(得分:1)
虽然索引时间提升被压缩并且在计算分数时可能导致重要的精度损失(例如,请参阅In Lucene, why do my boosted and unboosted documents get the same score?),但查询时间提升并非如此。
查询时间提升是Java float
,并使用Java算术运算符参与分数。当然可以有accuracy problems浮点算术,但这不太可能影响得分,文档在结果集中以不相关的顺序出现。