MST

星途 面试题库

面试题:ElasticSearch数字值API精度控制之基础应用

在ElasticSearch中,假设你要索引一批商品价格数据,价格精度要求精确到小数点后两位。请描述如何使用数字值API来实现这种精度控制,并给出相应的映射设置示例。
41.2万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

在ElasticSearch中,可以使用scaled_float类型来精确控制价格精度到小数点后两位。scaled_float类型通过指定一个缩放因子,将浮点数转换为长整型来存储,从而实现精确控制。

映射设置示例

{
    "mappings": {
        "properties": {
            "product_price": {
                "type": "scaled_float",
                "scaling_factor": 100
            }
        }
    }
}

在上述示例中,product_price字段被定义为scaled_float类型,scaling_factor设置为100。这意味着实际价格值会乘以100后作为长整型存储。例如,价格为12.34的商品,在ElasticSearch内部会以1234的形式存储。在检索时,ElasticSearch会自动将存储的整数值除以缩放因子,还原为原始的浮点数。

这样设置可以在保证精度的同时,相较于floatdouble类型,占用更少的存储空间,提高存储效率。