Я экспериментирую с полями типа float / double в Elasticsearch (версия 6.6.0).Я создал этот индекс:
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"amount": {
"type" : "float"
}
}
}
}
}
и добавил эту запись:
PUT my_index/_doc/1
{
"amount" : 1.0000000000111111111122222222223333333333
}
Когда я получаю этот документ, я получаю точную сумму, которую я отправил в Elastic:
GET my_index/_doc/1
...
"_source": {
"amount": 1.0000000000111111111122222222223333333333
}
...
Проверяя документацию, я ожидал, что возвращаемое значение будет иметь меньшую точность (меньше цифр): Упругие числовые типы данных документации
float - A32-разрядное число с плавающей точкой IEEE 754 с одинарной точностью, ограниченное конечными значениями.
Интересно, сохраняет ли Elasticsearch вместо этого значение в виде BigDecimal (или чего-то подобного), но я не смог найти ни одногоссылка на это.
Мой вопрос: это где-то задокументировано?Я что-то здесь упускаю?