Numeric search results are rounded up. Why?
Last updated 22, Mar 2024
Question
Numeric search results are rounded up. Why?
Answer
Consider the following example that creates an index, adds a JSON document, and performs a search.
FT.CREATE item_idx ON JSON PREFIX 1 item: SCHEMA id AS id NUMERIC
JSON.SET item:1 $ '{"id":999999999999999999}'
FT.SEARCH item_idx * RETURN 1 $.id
1) (integer) 1
2) "item:1"
3) 1) "$.id"
2) "1000000000000000000"
The numeric index on the id field approximates the value because of the current 32-bit capacity on numeric indexes.
If you would like to manage numbers exceeding the range supported by the 32 bits index size, you can index the id as TAG.
Retest the case in newer versions and refer to the release notes to understand if this case is improved.
References
Learn more about numeric filters