elasticsearch中field属性(数据类型)

field相当于mysql中的每个列,因此具备数据类型:整数、浮点、字符串、date等等

官网文档,https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

字符串类型:string

  • text:文本类型,一般用于全文检索,可以被分词器拆分

  • keyword:被当做一个单词,不能被分词器拆分

数值类型:number

long A signed 64-bit integer with a minimum value of 
integer A signed 32-bit integer with a minimum value of 
short A signed 16-bit integer with a minimum value of 
byte A signed 8-bit integer with a minimum value of 
double A double-precision 64-bit IEEE 754 floating point number, restricted to finite values.
float A single-precision 32-bit IEEE 754 floating point number, restricted to finite values.
half_float A half-precision 16-bit IEEE 754 floating point number, restricted to finite values.
scaled_float A floating point number that is backed by a 
unsigned_long An unsigned 64-bit integer with a minimum value of 0 and a maximum value of 

时间类型:date

可以指定具体的输入制定格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PUT my-index-000001
{
  "mappings": {
    "properties": {
      "date": {
        "type":   "date",
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
      }
    }
  }
}

布尔类型:boolean

false和true

二进制类型:Binary

暂时仅支持将二进制转换为base64编号的字符串

范围数据类型:range

  • long_range:赋值时,仅需存储范围即可,gt、lt、gte、lte

  • integer_rang:同上

  • double_range:同上

  • float_range:同上

  • date_range:同上

  • ip_range:同上

经纬度类型:geo

geo_point:存储经纬度

ip类型:

ip:可以存储ipv4或ipv6