我想了解浮動如何存儲在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