ES2.3.5版本的数据类型

Posted excellencesy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中解析

以上是关于ES2.3.5版本的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

支持动态或静态片段的不同屏幕尺寸?

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

如何管理在每个 git 版本中添加私有代码片段?

在代码片段中包含类型转换

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

对这个带有 & 不带 = 的代码片段返回类型感到非常困惑