我想了解浮动如何存储在SolR中。 我在PHP(32位)的float值和SolR中的存储值之间有一个增量。SolR浮动(TrieFloatField)存储限制
我搜索的文档中, “附带SOLR字段类型”:
https://cwiki.apache.org/confluence/display/solr/Field+Types+Included+with+Solr
而且找到了TrieFloatField:
浮点字段(32位IEEE浮点)。 precisionStep =“0” 启用有效的数字排序并最小化索引大小; precisionStep =“8”(默认值)可启用有效的范围查询。
但我不知道如何估计将存储的值。 这是我做的一些测试。 我试着在浮动场和结果要插入的值:使用哪种约束
ok: 2097151.1
ko: 2097152.1 -> 2097152
ko: 20971521 -> 20971520
ok: 16777216
ko: 16777217 -> 16777216
ko: 4294967296 -> 4294967300
ok: 4294967300
ko: 4294967301 -> 4294967300
我不明白,这不是四舍五入。 也许这是一个二元约束,因为它看起来是取整到的2
https://en.wikipedia.org/wiki/Power_of_two#The_first_96_powers_of_two
2^21 = 2,097,152
2^24 = 16,777,216
2^32 = 4,294,967,296
权力,你可以看到,这些值接近的由SOLR存储的人。
有人知道SolR商店如何浮动吗? 以及如何评估它与PHP?
感谢。
非常感谢,我会尝试在PHP中转置此JavaScript示例。 – Quezako
何,我没有看到您的链接实际上是使用.py文件...所以我必须自己搜索。 – Quezako