elasticsearch常用映射类型


字段数据类型概括:


Elasticsearch支持一系列不同的数据类型来定义文档字段,分为核心数据、复杂数据、地理数据、专门数据类型。


核心数据类型包括:


字符串数据类型: string

数字型数据类型: long、 Integer、 short、byte、 double、float

日期型数据类型: date

布尔型数据类型: boolean

二进制数据类型: binary

复杂数据类型包括:


数组数据类型: 不需要专门的类型来定义数组。

对象数据类型: object,单独的JSON对象。

嵌套数据类型: nested,关于JSON对象的数组。

地理数据类型包括:


地理点数据类型: geo_point,经纬点。

地理形状数据类型: geo_shape,多边形的复杂地理形状。

专门数据类型包括:


IPv4数据类型:IP协议为IPv4的地址。

完成数据类型: completion,提供自动补全的建议。

单词计数数据类型: token_count,统计字符串中的单词数量。



  • 字符串类型:



不分词

		"studymodel": {
			"type": "keyword"
		}


分词

		"name": {
			"type": "text"
		}


使用ik分词器

"name": {
    "type": "text",
    "analyzer":"ik_max_word",
    "search_analyzer":"ik_smart"
}



组合类型,支持分词或不分词,以及ik分词

      "buildcorpname": {
        "type": "text",
        "fields": {
          "key": {
            "type": "keyword"
          }
        },
        "analyzer": "ik_max_word"
      }



  • date日期类型


基本日期类型

	  "properties": {
		"date": { "type": "date" }
	  }	



设置允许date字段存储年月日时分秒、年月日及毫秒两张种格式

	"timestamp": {
		"type": "date",
		"format": "yyyy‐MM‐dd HH:mm:ss||yyyy‐MM‐dd"
	}



设置允许date字段存储年月日时分秒、年月日及毫秒三种格式,允许不指定日期格式

	"timestamp": {
		"type": "date",	
		"format": "yyyy‐MM‐dd HH:mm:ss||yyyy‐MM‐dd||epoch_millis"
	}



  • 数值类型



long类型,最小的整数

        "price": {
	    "type": "long"
	}


integer

        "price": {
	    "type": "integer"
	}



float

        "price": {
	    "type": "float"
	}


浮点数,对于浮点数尽量用比例因子,比如一个价格字段,单位为元,我们将比例因子设置为100这在ES中会按 分 存
储。

        "price": {
	    "type": "scaled_float",
	    "scaling_factor": 100
	}



double

        "price": {
	    "type": "double"
	}




  • bool类型


boolean

        "is_num": {
	    "type": "boolean"
	}



  • nested关联映射


"project": {
    "type": "nested",
        "properties": {
        "localdate":{
            "type": "date"
        }
    }
}



鼎云博客
  • 最新评论
  • 总共0条评论