什么是映射

  • 为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确(Exact-value)的字符串值,Elasticsearch需要知道每个字段里面都包含什么数据类型。这些类型和字段的信息存储在映射中
  • 创建索引的时候,可以预先定义字段的类型以及相关属性,相当于定义数据库字段的属性

映射的分类

静态映射

动态映射

什么是动态映射

文档中碰到一个以前没见过的字段时,动态映射可以自动决定该字段的类型,并对该字段添加映射

如何配置动态映射

  1. 通过dynamic属性进行控制
  2. true:默认值,动态添加字段; false:忽略新字段; strict:碰到陌生字段,抛出异常

适用范围

适用在根对象上或者object类型的任意字段上

字段类型

string 字符串
integer 数字
long A long value(64bit)
float A floating-point number(32bit):such as 1,2,3,4
double A floating-poing number(64bit)
bool A bool value,such as True,False
date such as:2017-02-20
binary 二进制

创建映射

POST /library                  #给索引为library创建映射关系
{
"settings":{
"number_of_shards" : 5,
"number_of_replicas" : 1
},
"mappings":{
"books":{         #索引为library的type类型为books
"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
}
}
}
}
}

获取映射

获取index为library的映射

GET library/_mapping
{
"library": {
"mappings": {
"books": {
"properties": {
"name": {
"type": "string",
"index": "not_analyzed"
},
"number": {
"type": "object",
"dynamic": "true"
},
"price": {
"type": "double"
},
"publish_date": {
"type": "date",
"format": "dateOptionalTime"
},
"title": {
"type": "string"
}
}
}
}
}
}

获取index为library,type为books的映射

GET /libraryyry/_mapping/books

获取集群内所有的映射信息

GET /_all/_mapping/

获取这个集群内某两个或多个type映射信息(books和bank_account映射信息)

GET /_all/_mapping/books,bank_account

删除映射

DELETE /libraryry/books

DELETE /libraryry/books/_mapping                #删除books的映射

DELETE /libraryry/_mapping/books,bank_acount  #删除多个映射

无法修改已经存在的mapping映射

1.如果要推到现有的映射,你得重新建立一个索引.然后重新定义映射
2.然后把之前索引里的数据导入到新的索引里
-------具体方法------
1.给现有的索引定义一个别名,并且把现有的索引指向这个别名,运行步骤2
2.运行: PUT /现有索引/_alias/别名A
3.新创建一个索引,定义好最新的映射
4.将别名指向新的索引.并且取消之前索引的执行,运行步骤5
5.运行: POST /_aliases
{
"actions":[
{"remove" : { "index": "现有索引名". "alias":"别名A" }}.
{"add" : { "index": "新建索引名", "alias":"别名A" }}
]
}
注意:通过这几个步骤就实现了索引的平滑过渡,并且是零停机

最新文章

  1. wxPython:事件
  2. java call sap
  3. expdp impdp终极教学
  4. Razor视图引擎的基本概念与法语
  5. BZOJ 2326: [HNOI2011]数学作业( 矩阵快速幂 )
  6. Dockerfile注意事项
  7. Natas Wargame Level20 Writeup(会话状态注入/篡改)
  8. Oracle篇 之 多表查询
  9. Linux 下 C# Mono P/Invoke .so 动态链接库。
  10. Vue 服务端渲染(SSR)
  11. 【BZOJ】 1041: [HAOI2008]圆上的整点
  12. python基础入门之对文件的操作
  13. Centos安装Samba共享服务器
  14. __x__(24)0907第四天__ display 和 visibility
  15. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(八)RTP音视频传输解析层之MPA传输格式
  16. JustOj 1994: P1001
  17. 浅析Java源码之HashMap外传-红黑树Treenode(已鸽)
  18. 1011 A+B 和 C
  19. linux查看tftp服务是否启动
  20. cocos lua 加密方案

热门文章

  1. iTOP-6818开发板设置NFS共享目录的实现
  2. Method Dispatch in Protocol Extensions
  3. sh InvocationTargetException
  4. python连接mysql的操作
  5. CAD使用GetAllAppName读所有名称(com接口)
  6. Perl语言入门:第七章习题:输出文件中包含一个大写字母的所有行,不输出一行的内容全是大写的
  7. IIS更改根目录
  8. CSU1007: 矩形着色
  9. Spring 实现 IoC
  10. PHP典型功能与Laravel5框架开发学习笔记