Elasticsearch映射字段数据类型及管理

 更新时间:2022年04月19日 17:51:43   作者:Jeff的技术栈  
这篇文章主要介绍了Elasticsearch映射字段数据类型及管理的讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Elasticsearch映射管理

在Elasticsearch 6.0.0或更高版本中创建的索引只包含一个mapping type。 在5.x中使用multiple mapping types创建的索引将继续像以前一样在Elasticsearch 6.x中运行。 Mapping types将在Elasticsearch 7.0.0中完全删除

一 映射介绍

在创建索引的时候,可以预先定义字段的类型及相关属性

Es会根据Json数据源的基础类型,猜测你想要映射的字段,将输入的数据转变成可以搜索的索引项。

Mapping是我们自己定义的字段数据类型,同时告诉es如何索引数据及是否可以被搜索

作用:会让索引建立的更加细致和完善

1.1 字段数据类型

string类型:text,keyword

数字类型:long,integer,short,byte,double,float

日期类型:data

布尔类型:boolean

binary类型:binary

复杂类型:object(实体,对象),nested(列表)

geo类型:geo-point,geo-shape(地理位置)

专业类型:ip,competion(搜索建议)

1.2 映射参数

属性描述适合类型
store值为yes表示存储,no表示不存储,默认为noall
indexyes表示分析,no表示不分析,默认为truetext
null_value如果字段为空,可以设置一个默认值,比如"NA"(传过来为空,不能搜索,na可以搜索)all
analyzer可以设置索引和搜索时用的分析器,默认使用的是standard分析器,还可以使用whitespace,simple。都是英文分析器all
include_in_all默认es为每个文档定义一个特殊域_all,它的作用是让每个字段都被搜索到,如果想让某个字段不被搜索到,可以设置为falseall
format时间格式字符串模式date

二 创建索引

text类型会取出词做倒排索引,keyword不会被分词,原样存储,原样匹配

mapping类型一旦确定,以后就不能修改了

#6.x的版本没问题
PUT books
{
  "mappings": {
    "book":{
      "properties":{
        "title":{
          "type":"text",
         	"analyzer": "ik_max_word"
        },
        "price":{
          "type":"integer"
        },
        "addr":{
          "type":"keyword"
        },
        "company":{
          "properties":{
            "name":{"type":"text"},
            "company_addr":{"type":"text"},
            "employee_count":{"type":"integer"}
          }
        },
        "publish_date":{"type":"date","format":"yyy-MM-dd"}
      }
    }
  }
}

7.x版本以后

PUT books
{
  "mappings": {
    "properties":{
      "title":{
        "type":"text",
        "analyzer": "ik_max_word"
      },
      "price":{
        "type":"integer"
      },
      "addr":{
        "type":"keyword"
      },
      "company":{
        "properties":{
          "name":{"type":"text"},
          "company_addr":{"type":"text"},
          "employee_count":{"type":"integer"}
        }
      },
      "publish_date":{"type":"date","format":"yyy-MM-dd"}
    }
  }
}

插入数据测试:

PUT books/_doc/1
{
  "title":"大头儿子小偷爸爸",
  "price":100,  
  "addr":"北京天安门",
  "company":{
    "name":"我爱北京天安门",
    "company_addr":"我的家在东北松花江傻姑娘",
    "employee_count":10
  },
  "publish_date":"2019-08-19"
}
#测试数据2
PUT books/_doc/2
{
  "title":"白雪公主和十个小矮人",
  "price":"99", #写字符串会自动转换
  "addr":"黑暗森里",
  "company":{
    "name":"我的家乡在上海",
    "company_addr":"朋友一生一起走",
    "employee_count":10
  },
  "publish_date":"2018-05-19"
}

三 查看索引

#查看books索引的mapping
GET books/_mapping
#获取所有的mapping
GET _all/_mapping

以上就是Elasticsearch映射字段数据类型及管理的详细内容,更多关于Elasticsearch映射字段数据类型管理的资料请关注脚本之家其它相关文章!

相关文章

  • Python实现批量获取文件夹内文件名并重命名

    Python实现批量获取文件夹内文件名并重命名

    这篇文章主要为大家详细介绍了Python如何批量获取文件夹内文件名及重命名文件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解

    PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解

    这篇文章主要介绍了PyCharm+Pipenv虚拟环境作开发和依赖管理的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Python读取csv文件做K-means分析详情

    Python读取csv文件做K-means分析详情

    这篇文章主要介绍了Python读取csv文件做K-means分析详情,基于时间序列的分析2D读取时间列和高程做一下分析。下文更多详细介绍需要的小伙伴可以参考一下
    2022-03-03
  • python 自动化将markdown文件转成html文件的方法

    python 自动化将markdown文件转成html文件的方法

    这篇文章主要介绍了python 自动化将markdown文件转成html文件的方法的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Pytorch之Variable的用法

    Pytorch之Variable的用法

    今天小编就为大家分享一篇Pytorch之Variable的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python实现PDF转为Excel的示例讲解

    Python实现PDF转为Excel的示例讲解

    这篇文章主要为大家详细介绍了在Python中将PDF表格转换为Excel文件的解决方案,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • python数据库批量插入数据的实现(executemany的使用)

    python数据库批量插入数据的实现(executemany的使用)

    这篇文章主要介绍了python数据库批量插入数据的实现(executemany的使用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python,Django实现的淘宝客登录功能示例

    python,Django实现的淘宝客登录功能示例

    这篇文章主要介绍了python,Django实现的淘宝客登录功能,结合实例形式分析了Django框架基于淘宝接口的登录功能相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • 详解Django 时间与时区设置问题

    详解Django 时间与时区设置问题

    这篇文章主要介绍了Django 时间与时区设置问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Windows平台Python连接sqlite3数据库的方法分析

    Windows平台Python连接sqlite3数据库的方法分析

    这篇文章主要介绍了Windows平台Python连接sqlite3数据库的方法,结合实例形式分析了Windows平台安装SQLite数据库及创建、连接数据库的实现方法与相关注意事项,需要的朋友可以参考下
    2017-07-07

最新评论