Elasticsearch索引的基本操作(4)-Mapping设置

栏目: 后端 · 发布时间: 4年前

内容简介:Mapping设置API _mapping ,允许增加新的字段到指定索引中,或在满足一定的条件下修改已经存在的字段,需要使用PUT方法。增加一个new_name到已经存在的索引new_index中,操作如下:响应:

1、 Mapping设置

Mapping设置API _mapping ,允许增加新的字段到指定索引中,或在满足一定的条件下修改已经存在的字段,需要使用PUT方法。

1.1 增加新的字段到索引中

增加一个new_name到已经存在的索引new_index中,操作如下:

PUT /new_index/_mapping

{

"properties":{

"phone_number": {

"type": "keyword"

}

}

}

响应:

{

"acknowledged" : true

}

表示操作成功,可以通过前面学的GET方法查看字段是否被成功到索引中。​​​​​​​

1.2 增加字段到多个索引中

如果涉及到要增加相同字段的索引较多,Elasticsearch同时往多个索引中增加相同的字段,以下示例同时在new_index和new_index_2中增加字段,操作如下:

PUT /new_index,new_index_2/_mapping

{

"properties":{

"phone_number": {

"type": "keyword"

}

}

}

响应:

{

"acknowledged" : true

}

表示操作成功。

​​​​​​​1.3 更新索引中的字段

通常情况下,索引中的已经存在的字段是不可以被更新的,如果字段要被更新,须满足以下的条件:

  • 被修改的字段为Object数据类型字段,可以为其增加新的属性;
  • 可以将新的多字段添加到现有字段中;
  • 字段的ignore_above(指长度超过ignore_above配置值的字符串,不会被索引或存储)参数值可以被更新;

1.4 操作示例

1)先建立一个索引update_field_test,通过mapping指定其中的address字段是Object数据类型、指定name字段为keyword类型,如下所示:

PUT /update_field_test

{

"mappings": {

"properties": {

"address": {

"properties": {

"home_address": {

"type": "text"

}

}

},

"name": {

"type": "keyword"

}

}

}

}

2)修改address字段,在其中增加company_address字段,并同时修改name字段的ignore_above属性,操作如下:

PUT /update_field_test/_mapping

{

"properties": {

"address": {

"properties": {

"company_address": {

"type": "text"

}

}

},

"name": {

"type": "keyword",

"ignore_above": 200

}

}

}

3)通过GET方法查看字段是否被成功加入和修改:

GET /update_field_test

{

"update_field_test" : {

"aliases" : { },

"mappings" : {

"properties" : {

"address" : {

"properties" : {

"company_address" : {

"type" : "text"

},

"home_address" : {

"type" : "text"

}

}

},

"name" : {

"type" : "keyword",

"ignore_above" : 200

}

}

},

...//省略其它的

}

可以看到新的字段company_address已经成功加入了,name的ignore_above属性也被更新了。

​​​​​​​2. 查看mapping

1)查看单个索引的mapping,如下所示:

GET /update_field_test/_mapping

2)也可以同时查看多个索引的mapping,索引之间与英文逗号“,”做分隔,如下所示:

GET /update_field_test,new_index/_mapping

每个索引的mapping都会归属到该索引下,返回的结构如下:

{

"new_index" : {

"mappings" : {

"properties" : {

...

}

}

},

"update_field_test" : {

"mappings" : {

"properties" : {

...

}

}

}

}

3)查看所有索引的mapping,如下所示:

GET /_all/_mapping

#或

GET /_mapping

返回的结构和上面返回多个mapping的结构是相同的。

4)查看索引中指定字段的mapping,如下所示:

GET /update_field_test/_mapping/field/name

5)查看多个索引中多个字段的mapping,多个索引和多个字段,都以英文逗号“,”做为分隔符,如下所示:

GET /update_field_test,new_index/_mapping/field/name,name1

响应:

{

"new_index" : {

"mappings" : { }

},

"update_field_test" : {

"mappings" : {

"name" : {

"full_name" : "name",

"mapping" : {

"name" : {

"type" : "keyword",

"ignore_above" : 200

}

}

}

}

}

}

New_index没有字段name和name1,update_field_test中有字段name但没有name1,根据响应可以看出,如果字段不存在,则不显示mapping结果,存在则显示,这里不会报错。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

另一个地球

另一个地球

[美]马克·格雷厄姆、威廉·H·达顿 / 胡泳、徐嫩羽 / 电子工业出版社 / 2015-10-1 / 78

互联网在日常工作和生活中扮演日益重要的角色,互联网将如何重塑社会?本书通过汇集有关互联网文化、经济、政治角色等问题的研究成果,提供了特定社会制度背景下解决这一问题的根本办法。 关于互联网的研究是蓬勃发展的崭新领域,牛津大学互联网研究院(OII)作为创新型的跨学科学院,自成立起就专注于互联网研究。牛津大学互联网研究院关于互联网+社会的系列讲座在一定程度上塑造了互联网+社会。本书内容基于不同学科......一起来看看 《另一个地球》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具