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

文章目录

  • 简介
  • 示例
  • 注意事项

简介

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

Elasticsearch(015):es常见的字段映射类型之数字类型(numeric)_第1张图片

示例

#给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。使用比例因子的好处是整型比浮点型更易压缩,节省磁盘空间。

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

Elasticsearch(015):es常见的字段映射类型之数字类型(numeric)_第2张图片

你可能感兴趣的:(ElasticSearch)