es核心技术与实战 Day05(Mapping)

Mapping

  • Mapping类似数据库中的schema的定义,作用如下
    • 定义索引中的字段的名称
    • 定义字段的数据类型,例如字符串,数字,布尔…
    • 字段,倒排索引的相关配置,(Analyzed or Not Analyzed,Analyzer)
  • Mapping 会把JSON文档映射成Lucene所需要的扁平格式
  • 一个Mapping属于一个索引的Type
    • 每个文档都属于一个Type,
    • 一个Type有一个Mapping定义
    • 7.0开始,不需要在Mapping定义中指定type信息
      字段的数据类型
  • 简单类型
    • Text / Keyword
    • Date
    • Integer / Floating
    • BooleanI
    • IPv4 & IPv6
  • 复杂类型 -对象和嵌套对象
    • 对象类型 /嵌套类型
  • 特殊类型
    • geo_ point & geo_ shape / percolator

类型的自动识别
在这里插入图片描述

demo
//写入文档
PUT mapping_test/_doc/1
{
	"firstName" : "Chan",
	"lastName": "Jackie",
	"loginDate":"2018-07-24T10: 29:48.103Z"
}

//查看Mapping文件
GET mapping_test/_mapping

//删除索引
DELETE mapping_test

//重新插入文档
PUT mapping_test/_doc/1
{
	"uid" : "123" ,
	"isVip" : false,
	"isAdmin": "true",
	"age" :19 ,
	"heigh" :180
}
‘true’false’‘strict’
文档可索引YESYESNO
字段可索引YES .NONO
Mapping被更新YESNONO

定义mapping

PUT movies
{
	"mappings": {
		"doc":{
			"dynamic" :"false"
		}
	}
}

  • 当dynamic被设置成false时候,存在新增字段的数据写入,该数据可以被索引,但是新增字段被丢弃
  • 当设置成Strict模式时候,数据写入直接出错
如何定义一个Mapping
PUT movies
{
	"mappings": {
		//define your mappings here
	}
}

Index -控制当前字段是否被索引。默认为true。如果设置成false, 该字段不可被搜索

PUT users
{
	"mappings" : {
		"properties" : {
			"firstName" : {
				"type" : "text"
			}"lastName" : {
				"type" : "text"
				//对NULL值实现搜索
				"null_value":"NULL"
			},
			"mobile" : {
				"type" : "text" ,
				//该字段不可被搜索
				"index": false
				}
			}
		}
}
char_filter
//自动去除html标签
POST_ analyze
{
	"tokenizer": "keyword",
	"char_ filter" : ["html. strip"],
	"text": "<b>hello world</b>"
}
//替换符号
POST _analyze
{
	"tokenizer":"standard", 
	"char_ filter": [
		{
			"type" : "mapping" ,
			//-替换成_
			"mappings" : [ "- => _"]
		}
	],
"	text": "123-456, I-test! test-990 650-555- 1234"
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值