【发布时间】:2012-03-21 12:10:51
【问题描述】:
我知道 solr 使用浮点数的规范化来节省内存并通过将它们映射到 2 字节表示来加速计算。
所以我的问题 - 可以使用任何浮点数来提高我的查询条件(即a^0.00001 +b^0.11111)还是我应该以某种方式对它们进行标准化以不失去 solr/lucene 计算的精度?说让它们介于 1 到 1000 之间,并让它们成为 2 的幂。
【问题讨论】:
我知道 solr 使用浮点数的规范化来节省内存并通过将它们映射到 2 字节表示来加速计算。
所以我的问题 - 可以使用任何浮点数来提高我的查询条件(即a^0.00001 +b^0.11111)还是我应该以某种方式对它们进行标准化以不失去 solr/lucene 计算的精度?说让它们介于 1 到 1000 之间,并让它们成为 2 的幂。
【问题讨论】:
虽然索引时间提升被压缩并且在计算分数时可能导致重要的精度损失(例如,请参阅In Lucene, why do my boosted and unboosted documents get the same score?),但查询时间提升并非如此。
查询时间提升是 Java floats,并使用 Java 算术运算符参与分数。当然,accuracy problems 可以使用浮点运算,但这不太可能以文档在结果集中以不相关的顺序出现的方式影响评分。
【讨论】: