飞道的博客

Elasticsearch(015):es常见的字段映射类型之数字类型(numeric)

317人阅读  评论(0)

文章目录

简介

es支持一下long, integer, short, byte, double, float, half_float, scaled_float常见的数字类型。

示例

#给example索引添加字段映射,默认docs类型
PUT example/docs/_mapping
{
  "properties": {
    "id":{
      "type":"long"
    },
    "name":{
      "type":"keyword"
    },
    "age":{
      "type":"integer"
    },
    "remark":{
      "type":"text"
    }
  }
}

其中的age使用是integer的范围类型。

注意事项

  1. 尽量选择范围小的类型,提高搜索效率。

  2. 对于浮点数尽量用比例因子,比如一个价格字段,单位为元,我们将比例因子设置为100这在ES中会按分存储,映射如下。

{
   "price": {
     "type": "scaled_float",
     "scaling_factor": 100
   }
}

注意: scaling_factor属性是只针对scaled_float这个数据类型才有,不要在其他类型上使用此属性。

由于比例因子为100,如果我们输入的价格是23.45则ES中会将23.45乘以100存储在ES中。如果输入的价格是23.456,ES会将23.456乘以100再取一个接近原始值的数,得出2346。使用比例因子的好处是整型比浮点型更易压缩,节省磁盘空间。

如果比例因子不适合,则从下表选择范围小的去用。


转载:https://blog.csdn.net/weixin_39723544/article/details/104331885
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场