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相关推荐

  1. elasticsearch 搭配 canal 字段更新和后续兼容查询设计(四)

    前言 之前的几篇elasticsearch和canal的搭配文章,基本把一个项目算是搭起来了.这个架构总算是支撑到项目的第一版上线了.在投入生产环境之后,必然会面对一系列的bug修复.需求变动.版本迭 ...

  2. orika 映射非空字段_Orika:将JAXB对象映射到业务/域对象

    orika 映射非空字段 这篇文章着眼于使用Orika将JAXB对象映射到业务域对象. 本月初, 我使用基于反射的Dozer讨论 了相同的映射用例 . 在本文中,我假设需要映射相同的示例类,但是它们将 ...

  3. java类中定义索引器,C#面向对象基础——字段、属性和索引器

    关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...

  4. C#中全局作用域的常量、字段、属性、方法的定义与使用

    场景 在开发中,经常会有一些全局作用域的常量.字段.属性.方法等. 需要将这些设置为全局作用域保存且其实例唯一. 注: 博客主页: https://blog.csdn.net/badao_liuman ...

  5. 属性定义为 not null unique_Spring Data with MySQL (实体定义)

    Spring Data with MySQL 节选自<Netkiller Spring Cloud 手札> 多维度架构 - 知乎​www.zhihu.com 选择数据库表引擎 正常创建表会 ...

  6. ElasticSearch 动态映射和静态映射,以及四种字段类型

    文章目录 1.ElasticSearch 映射 1.1 映射分类 1.2 类型推断 2.ElasticSearch 字段类型 2.1 核心类型 2.1.1 字符串类型 2.1.2 数字类型 2.1.3 ...

  7. java实体字节属性定义_Java字节码方法表与属性表详解

    而这些字节其实对应的信息是它: 所以问题就来了,aload_0不是助记符信息么,怎么就能够跟字节码文件中的字节对应上呢?所谓助记符其实也就是帮忙我们去记忆的符合,在底层其实也是对应的一个个十六进制的数 ...

  8. HTML+CSS---定位(相对定位--绝对定位--固定定位--设置元素的层叠顺序)---表单---设置光标样式---透明度(opacity属性定义元素的不透明度--IE的半透明滤镜)---外边线

    文章目录 定位 静态定位(static) 相对定位(relative) 绝对定位(absolute) 固定定位(fixed) 设置元素的层叠顺序 表单 设置光标样式 透明度 opacity属性定义元素 ...

  9. Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析

    Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...

最新文章

  1. linux安装mysql php_Linux 安装mysql和php
  2. python中文字符_python处理中文字符
  3. 图灵原版计算机科学系列,图灵原版计算科学系列
  4. 推荐一个golang的json库
  5. 浙江师范大学python试卷_2014考研计算机真题试卷及答案(浙江师范大学考点)
  6. MATLAB求解非线性方程组
  7. Swagger自动接口文档生成框架————springboot整合swagger总结
  8. Centos 7安装报错:Warning:dracut-initqueue timeout - starting timeout scripts
  9. view绘制流程学习心得
  10. 用mysql语句备份_MySql常用备份及恢复语句
  11. 麦肯锡方法:解决问题的七个步骤
  12. matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
  13. 自主导航:赋予移动机器人智能感知与运动的能力
  14. 微服务 支付 核对 对账系统
  15. 除了摆地摊or送外卖,程序猿如何体面的赚零花钱?
  16. 基于支付宝微信通知的一种个人收款回调方案
  17. 支付宝高可用系统架构-胡喜
  18. 黑马 Java八股文面试题视频教程,Java面试八股文宝典(虚拟机篇)
  19. 计算机电源接通 但未充电,笔记本电脑电源已接通却显示未充电怎么办?
  20. 【强化学习】Q-Learning算法详解

热门文章

  1. python中如何导入图片,Unreal中的python如何导入图片资源到引擎
  2. golang | 使用结构体抄的学生信息管理系统
  3. 一台弹性云服务器可以挂载多块磁盘吗?
  4. Java基础学习总结(134)——JDK 11 是否值得更新的思考
  5. Java Web学习总结(4)——HttpServletResponse对象入门
  6. php w 框架叫什么意思,框架是什么,为啥要用框架. 框架解决了什么
  7. 动态规划法(五)钢条切割问题(rod cutting problem)
  8. Gradle 3.0.0设置Apk文件输出命名
  9. TYVJ P1083 分糖果 Label:bfs
  10. Oracle SQL 对象的命令和编写规范