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

mac2025-04-15  5

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(默认);

      (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"  }            }     }   }

最新回复(0)