elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping
1.什么是Mapping映射?
映射:创建索引的时候,可以预先定义字段的类型及相关属性
作用:这样会让索引建立的更加的细致和完善
分类:静态映射和动态映射
Type | ES type | Description |
String,Varchar,Text | string | 文本类型 |
Integer | integer | 整型 |
Long | long | 长整型 |
Float | float | 浮点型 |
Double | double | 双精度浮点型 |
Boolean | boolean | 布尔型 |
Date/Datetime | date | 日期类型 |
Bytes/Binary | binary | 字节型 |
2.映射的属性方法
除了定义字段的类型,还可以给字段添加相关的属性
属性 | 描述 | 适用类型 |
store | 值为:yes或者no,设为yes就是存储,no就是不存储,默认值是no | all |
index |
值为:analyzed,not_analyzed或者no analyzed索引且分析 not_analyzed索引但不分析 no 不索引这个字段,这样就搜索不到 默认值是analyzed |
string(其他类型只能设置为no或not_analyzed) |
null_value | 如果字段是空值,通过它可以设置一个默认值,比如“null_value”:"NA" | all |
boost | 设置字段的权值,默认值是1.0 | all |
index_analyzer | 设置一个索引时用的分析器 | all |
search_analyzer | 设置一个搜索时用的分析器 | all |
analyzer | 可以设置索引和搜索时用的分析器,默认下elasticsearch使用的是standard分析器,除此之外,你还可以使用whitespace,simple,english这三种内置的分析器 | all |
include_in_all | 默认下elasticsearch会为每一个文档定义一个特殊的域_all,它的作用就是每一个字段都将被搜索到,如果你不想让某个字段被搜索到,那么久在这字段里定义一个include_in_all=false,默认值是true | all |
index_name | 定义字段的名称;默认值是字段本身的名字 | all |
norms | norms的作用是根据各种规范化因素去计算权值,这样方便查询,在analyzed定义字段里,默认值是true,not_analyzed是false | all |
3.动态映射
3.1什么是动态映射?
文档中碰到一个以前没见过的字段时,动态映射可以自动决定该字段的类型,并对该字段添加映射。
3.2如何配置动态映射?
通过dynamic属性进行控制
true:默认值,动态添加字段;false:忽略新字段;strict:碰到陌生字段,跑出异常
3.3使用范围?
适用在根对象上或者object类型的任意字段上
案例:
1).建立映射
POST /library
{"settings":{"number_of_shards":5,"number_of_replicas":1},"mappings":{"books":{"properties":{"title":{"type":"string"},"name":{"type":"string","index":"not_analyzed"},"publish_date":{"type":"date","index":"not_analyzed"},"price":{"type":"double"},"number":{"type":"integer"}}}}
}
2).动态映射
PUT /library
{"mappings":{"books":{"dynamic":"strict","properties":{"title":{"type":"string"},"name":{"type":"string","index":"not_analyzed"},"publish_date":{"type":"date","index":"not_analyzed"},"price":{"type":"double"},"number":{"type":"object","dynamic":true}}}}
}
4. 管理映射
4.1获取映射信息
1)获取某个索引的映射信息
GET /library/_mapping
2)获取某个索引下某个type的映射信息
GET /library/_mapping/books
3)获取这个集群内所有的映射的信息
GET /_all/_mapping
4)获取这个集群内某两个或者多个type的映射信息
GET /_all/_mapping/books,bank_account
4.2更新映射信息
更新修改mapping映射
很遗憾,mapping一旦建立,就不能修改现有的字段映射
如果要推倒现有的映射,就得重新建立一个索引,然后重新定义映射
然后把之前的索引里的数据导入到新建立的映射里面
方法步骤:
1)给现有的索引定义一个别名,并且把现有的索引指向这个别名,运行步骤2
2)运行:PUT /现有索引/_alias/别名A
3)新创建一个索引,定义好最新的映射
4)将别名指向新的索引,并且取消之前索引的指向,运行步骤5
5)运行:
POST _aliases
{"actions": [{"remove": {"index": "现有索引名","alias": "别名A"},"add": {"index": "新建索引名","alias": "别名A"}}]
}
4.3删除映射信息
3种方式供使用
DELETE /library/books
DELETE /library/books/_mapping
DELETE /library/_mapping/books,bank
elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping相关推荐
- elasticsearch 搭配 canal 字段更新和后续兼容查询设计(四)
前言 之前的几篇elasticsearch和canal的搭配文章,基本把一个项目算是搭起来了.这个架构总算是支撑到项目的第一版上线了.在投入生产环境之后,必然会面对一系列的bug修复.需求变动.版本迭 ...
- orika 映射非空字段_Orika:将JAXB对象映射到业务/域对象
orika 映射非空字段 这篇文章着眼于使用Orika将JAXB对象映射到业务域对象. 本月初, 我使用基于反射的Dozer讨论 了相同的映射用例 . 在本文中,我假设需要映射相同的示例类,但是它们将 ...
- java类中定义索引器,C#面向对象基础——字段、属性和索引器
关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...
- C#中全局作用域的常量、字段、属性、方法的定义与使用
场景 在开发中,经常会有一些全局作用域的常量.字段.属性.方法等. 需要将这些设置为全局作用域保存且其实例唯一. 注: 博客主页: https://blog.csdn.net/badao_liuman ...
- 属性定义为 not null unique_Spring Data with MySQL (实体定义)
Spring Data with MySQL 节选自<Netkiller Spring Cloud 手札> 多维度架构 - 知乎www.zhihu.com 选择数据库表引擎 正常创建表会 ...
- ElasticSearch 动态映射和静态映射,以及四种字段类型
文章目录 1.ElasticSearch 映射 1.1 映射分类 1.2 类型推断 2.ElasticSearch 字段类型 2.1 核心类型 2.1.1 字符串类型 2.1.2 数字类型 2.1.3 ...
- java实体字节属性定义_Java字节码方法表与属性表详解
而这些字节其实对应的信息是它: 所以问题就来了,aload_0不是助记符信息么,怎么就能够跟字节码文件中的字节对应上呢?所谓助记符其实也就是帮忙我们去记忆的符合,在底层其实也是对应的一个个十六进制的数 ...
- HTML+CSS---定位(相对定位--绝对定位--固定定位--设置元素的层叠顺序)---表单---设置光标样式---透明度(opacity属性定义元素的不透明度--IE的半透明滤镜)---外边线
文章目录 定位 静态定位(static) 相对定位(relative) 绝对定位(absolute) 固定定位(fixed) 设置元素的层叠顺序 表单 设置光标样式 透明度 opacity属性定义元素 ...
- Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析
Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...
最新文章
- linux安装mysql php_Linux 安装mysql和php
- python中文字符_python处理中文字符
- 图灵原版计算机科学系列,图灵原版计算科学系列
- 推荐一个golang的json库
- 浙江师范大学python试卷_2014考研计算机真题试卷及答案(浙江师范大学考点)
- MATLAB求解非线性方程组
- Swagger自动接口文档生成框架————springboot整合swagger总结
- Centos 7安装报错:Warning:dracut-initqueue timeout - starting timeout scripts
- view绘制流程学习心得
- 用mysql语句备份_MySql常用备份及恢复语句
- 麦肯锡方法:解决问题的七个步骤
- matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
- 自主导航:赋予移动机器人智能感知与运动的能力
- 微服务 支付 核对 对账系统
- 除了摆地摊or送外卖,程序猿如何体面的赚零花钱?
- 基于支付宝微信通知的一种个人收款回调方案
- 支付宝高可用系统架构-胡喜
- 黑马 Java八股文面试题视频教程,Java面试八股文宝典(虚拟机篇)
- 计算机电源接通 但未充电,笔记本电脑电源已接通却显示未充电怎么办?
- 【强化学习】Q-Learning算法详解
热门文章
- python中如何导入图片,Unreal中的python如何导入图片资源到引擎
- golang | 使用结构体抄的学生信息管理系统
- 一台弹性云服务器可以挂载多块磁盘吗?
- Java基础学习总结(134)——JDK 11 是否值得更新的思考
- Java Web学习总结(4)——HttpServletResponse对象入门
- php w 框架叫什么意思,框架是什么,为啥要用框架. 框架解决了什么
- 动态规划法(五)钢条切割问题(rod cutting problem)
- Gradle 3.0.0设置Apk文件输出命名
- TYVJ P1083 分糖果 Label:bfs
- Oracle SQL 对象的命令和编写规范