ES2.3.5版本的数据类型

1,最近使用了2.3.5版本的ES,发现在创建索引的时候出了以下错误。

(1)例:

POST 192.168.11.166:9200/article3/article/_mapping

{
   "properties": {
        "id": {
            "type": "keyword"
        },
        "name": {
            "type": "text"
        },
        "desc": {
            "type": "String"
        },
        "createtime": {
            "type": "date",
            "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        },
        "modifiytime": {
            "type": "date",
            "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        }
    }
}

(2)错误:

mapper_parsing_exception
No handler for type [keyword] declared on field [id]

(3)出错原因:

在创建索引的时候使用的是6.X版本的语句,在2.3.5版本中有些数据类型并不存在。

比如上面这个例子中,在创建索引的时候id的类型定义成keyword,但是在2.3.5版本中并没有这种数据类型。

2,下面是2.3.5版本中ES的数据类型:

(1)String 

 index:   analyzed(默认)  not_analyzed  no:不被检索 ;

 store:   true 独立存储,false(默认)不存储,从_source中解析

(2)Numeric

数值类型,注意numeric并不是一个类型,它包括多种类型,比如:long,integer,short,byte,double,float,每种的存储空间都是不一样的,一般默认推荐integer和float

 index: not_analyzed(默认) 保证该字段可以检索到;no:不被检索

 store:   true 独立存储,false(默认)不存储,从_source中解析

(3)Date:

 index: not_analyzed(默认) 保证该字段可以检索到;no:不被检索

  store:   true 独立存储,false(默认)不存储,从_source中解析

format格式化:

strict_date_optional_time||epoch_millis(默认)

"date": {

  "type":   "date",

  "format": "yyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"

}

(4)Ip:

      用来标识IPV4的地址

index: not_analyzed(默认) 保证该字段可以检索到;no:不被检索

  store:   true 独立存储,false(默认)不存储,从_source中解析

(5)Boolean:

布尔类型,所有的类型都可以标识布尔类型

False: 表示该值的有:false, "false", "off", "no", "0", "" (empty string), 0, 0.0

True: 所有非False的都是true

index: not_analyzed(默认) 保证该字段可以检索到;no:不被检索

store:   true 独立存储,false(默认)不存储,从_source中解析

猜你喜欢

转载自www.cnblogs.com/excellencesy/p/11736079.html