ElasticSearch7.4的数据类型,Mapping Type, 指定索引Document的Mapping Type

ElasticSearch7.4的数据类型,Mapping Type, 指定索引Document的Mapping Type

基础数据类型:(ELasticsearch 5.X之后的字段类型不再支持string,由text或keyword取代)

    一、字符串

        1.1 文本类型 text
          当一个字段需要用于全文搜索(会被分词), 比如产品名称、产品描述信息, 就应该使用text类型.
            text的内容会被分词, 可以设置是否需要存储: "index": "true|false".
            text类型的字段不能用于排序, 也很少用于聚合.
        1.2 关键字类型 keyword
           当一个字段需要按照精确值进行过滤、排序、聚合等操作时, 就应该使用keyword类型.
              keyword的内容不会被分词, 可以设置是否需要存储: "index": "true|false".

    二、数字类型:

      byte  有符号的8位整数, 范围: [-128 ~ 127]
      short 有符号的16位整数, 范围: [-32768 ~ 32767]
      integer 有符号的32位整数, 范围: [$-2^{31}$ ~ $2^{31}$-1]
      long  有符号的32位整数, 范围: [$-2^{63}$ ~ $2^{63}$-1]
      float 32位单精度浮点数
      double  64位双精度浮点数
      half_float  16位半精度IEEE 754浮点类型
      scaled_float  缩放类型的的浮点数, 比如price字段只需精确到分, 57.34缩放因子为100, 存储结果为5734
        尽可能选择范围小的数据类型, 字段的长度越短, 索引和搜索的效率越高;
        优先考虑使用带缩放因子的浮点类型.

    三、日期类型 - date

      JSON没有日期数据类型, 所以在ES中, 日期可以是:
      包含格式化日期的字符串, "2018-10-01", 或"2018/10/01 12:10:30".
      代表时间毫秒数的长整型数字.
      代表时间秒数的整数.
      如果时区未指定, 日期将被转换为UTC格式, 但存储的却是长整型的毫秒值.
      可以自定义日期格式, 若未指定, 则使用默认格式: strict_date_optional_time||epoch_millis

    四、布尔类型
      真值: true, "true", "on", "yes", "1"...
      假值: false, "false", "off", "no", "0", ""(空字符串), 0.0, 0

    五、二进制类型
      二进制类型是Base64编码字符串的二进制值, 不以默认的方式存储, 且不能被搜索. 有2个设置项:

      (1) doc_values: 该字段是否需要存储到磁盘上, 方便以后用来排序、聚合或脚本查询. 接受true和false(默认);

扫描二维码关注公众号,回复: 10580838 查看本文章

      (2) store: 该字段的值是否要和_source分开存储、检索, 意思是除了_source中, 是否要单独再存储一份. 接受true或false(默认).
    六、范围类型:
      range类型支持以下几种:

      类型  范围
      integer_range $-2^{31}$ ~ $2^{31}-1$
      long_range  $-2^{63}$ ~ $2^{63}-1$
      float_range 32位单精度浮点型
      double_range  64位双精度浮点型
      date_range  64位整数, 毫秒计时
      ip_range  IP值的范围, 支持IPV4和IPV6, 或者这两种同时存在

复合数据类型
  
    一、数组类型

    二、对象类型

    三、嵌套类型 nested

地理数据类型
   一、地理点类型 - geo point
   二、地理形状类型 - geo_shape

专业领域数据类型
  IP类型
  计数数据类型 - token_count


创建指定Mapping type的索引库 (一个Mapping Type包括两部分,Meta-fields、Fields or properties)
PUT /my-index
  {
    "mappings": {
      "properties": {
        "age":    { "type": "integer" },  
        "email":  { "type": "keyword"  }, 
        "name":   { "type": "text"  }     
      }
    }
  }

发布了117 篇原创文章 · 获赞 17 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/Jack__iT/article/details/102854247