ES[7.6.x\]学习笔记(四)字段类型(mapping)

ES[7.6.x\]学习笔记(四)字段类型(mapping)

在上一节中,我们创建了索引,在创建索引的时候,我们指定了mapping属性,mapping属性中规定索引中有哪些字段,字段的类型是什么。在mapping中,我们可以定义如下内容:

  • 类型为String的字段,将会被全文索引;

  • 其他的字段类型包括:数字、日期和geo(地理坐标);

  • 日期类型的格式;

  • 动态添加字段的映射规则;

字段的可用类型如下:

  • 简单的类型,比如:text,keyword,date,long,double,boolean,ip。我们可以看到,类型当中没有String,字符串的类型是text,所有text类型的字段都会被全文索引。数字类型有两个,long(长整型)和double(浮点型)。

  • JSON的层级类型:Object(对象)和Nested(数组对象)。Object类型时,该字段可以存储一个JSON对象;Nested类型时,该字段可以存储一个数组对象。

  • 复杂的类型:包括 geo_point、geo_shape和completion。

在索引中创建映射

我们在创建索引的时候可以同时创建映射,就如同上一节的内容。也可以在索引创建好以后,再去创建映射,请求的方式如下:

PUT /my-index
{
 "mappings": {
   "properties": {
     "age":   { "type": "integer" },  
     "email": { "type": "keyword" },
     "name":   { "type": "text" }    
  }
}
}

请求的方法我们要使用PUT,路径是我们的索引名称,请求体当中是我们为索引添加的字段和字段的类型。

在存在的映射中添加字段

正如上面所示,我们在一个索引中添加了字段,但是现在我们要补充额外的字段,这时,我们要怎么做呢?

PUT /my-index/_mapping
{
 "properties": {
   "employee-id": {
     "type": "keyword",
     "index": false
  }
}
}

我们使用PUT方法,后面跟随我们的索引名称,再接上_mapping,请求体中是我们新添加的映射字段,我们指定了字段的类型为keywordindex索引为false,说明这个字段只用于存储,不会用于搜索,搜索这个字段是搜索不到的。

我们在更新字段时候,是不能修改字段的类型的。如果我们要修改字段的类型,最好是新建一个新的字段,指定正确的类型,然后再更新索引,以后我们只需要查询这个新增的字段就可以了。

查看索引中的字段映射

如果我们要查看已知索引的字段映射,可以向ES发送如下的请求:

GET /my-index/_mapping

请求的方法是GET,请求的路径是我们索引的名称my-index,再加上一个_mapping,得到的返回结果如下:

{
 "my-index" : {
   "mappings" : {
     "properties" : {
       "age" : {
         "type" : "integer"
      },
       "email" : {
         "type" : "keyword"
      },
       "employee-id" : {
         "type" : "keyword",
         "index" : false
      },
       "name" : {
         "type" : "text"
      }
    }
  }
}
}

返回的结果中,我们可以看到索引的名称my-index,还有我们添加的字段,也包括后续补充的employee-id字段。

好了,关于索引的字段映射就先给大家介绍到这里。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2499.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Service中bindService

    Service中bindService最近有用到Activity需要不断的从Service中获取数据,第一个想法肯定就是通过bind回调机制了,有几点概念模糊特此记录下:单独使用bindService(),unbindService()会经历:->onCreate()->onBind()->Servicerunning->onUnbind()->onDestroy()。单独使用startSer…

    2022年6月10日
    47
  • 实现redhat的完全自动化安装

    实现redhat的完全自动化安装

    2021年8月13日
    56
  • Java的8个Java日志工具[通俗易懂]

    摘要:本文要来分享一些Java程序员最常用的Java日志框架组件。日志工具log4j–最受欢迎的Java日志组件Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台、文件、用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程。更值得一提的是,Log4j可以允许你非常便捷地自定义日志格式和日志等级,可以帮助开发人员全方位地掌控…

    2022年4月9日
    495
  • ubifs使能和禁止压缩_移植不成功胚胎去哪了

    ubifs使能和禁止压缩_移植不成功胚胎去哪了我在用TI的dm368开发板,kernel是2.6.32.17,默认的flash文件系统是jffs2,但是jffs2在大分区下,mount速度很慢,而且占用ram较多,因此,我想使用ubifs看看性能是否会更好些。ubifs的原理和配置过程,很多网页都有介绍的,我给一个链接,大家可以看看,我就不转载了,我重点说我移植过程中遇到并解决的问题。http://bbs.chinaunix.net/

    2022年8月13日
    1
  • oracle用户修改密码sql_oracle数据库管理员密码忘记

    oracle用户修改密码sql_oracle数据库管理员密码忘记修改oracle数据库用户名称和密码(Linux为例),有需要的朋友可以参考下。一、修改前准备工作:使用ssh工具以root身份连接服务器,然后切换到oracle用户:su-oracle(回车)使用sqlplus连接数据库:sqlplus/nolog(回车)以管理员身份登录sys用户:connsys/sysassysdba(回车)数据库连接成功,至此准备工作完成。二、修改用户名称。数据…

    2022年7月28日
    15
  • Xmind快捷键大全(总结)[通俗易懂]

    Xmind快捷键大全(总结)[通俗易懂]在Xmind中,快捷键是可以大大提高绘图效率的存在。掌握常用的快捷键组合,就可以在键盘上运指如飞,快速地进行思维导图的绘制。主要的快捷键类型有四种,分别是:文件(File)、插入(Insert)、编辑(Edit)和查看(View)。文件文件快捷键,指的是对当前文件整体的一个操作,常见的功能有保存、关闭、打开和新建等。插入XMind:支持添加丰富的主题元素,你可以添加标记、标签、超链接、附件、主题链接、笔记等丰富的主题元素来表达复杂的逻辑层次和丰富的想法。编辑【编辑】类型快捷

    2022年6月6日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号