Elasticsearch 数据类型及管理


Posted in Python onApril 19, 2022

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表示不存储,默认为no all
index yes表示分析,no表示不分析,默认为true text
null_value 如果字段为空,可以设置一个默认值,比如"NA"(传过来为空,不能搜索,na可以搜索) all
analyzer 可以设置索引和搜索时用的分析器,默认使用的是standard分析器,还可以使用whitespace,simple。都是英文分析器 all
include_in_all 默认es为每个文档定义一个特殊域_all,它的作用是让每个字段都被搜索到,如果想让某个字段不被搜索到,可以设置为false all
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映射字段数据类型及管理的详细内容!

Python 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
Python内置函数Type()函数一个有趣的用法
Feb 18 Python
python对html代码进行escape编码的方法
May 04 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
python搜索包的路径的实现方法
Jul 19 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
Django中的AutoField字段使用
May 18 Python
Python内置异常类型全面汇总
May 28 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
Elasticsearch 索引操作和增删改查
Apr 19 #Python
python中redis包操作数据库的教程
Apr 19 #Python
python中pymysql包操作数据库方法
Apr 19 #Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 #Python
python中urllib包的网络请求教程
Apr 19 #Python
python APScheduler执行定时任务介绍
Apr 19 #Python
Python数据可视化之Seaborn的安装及使用
You might like
PHP 高手之路(一)
2006/10/09 PHP
用mysql内存表来代替php session的类
2009/02/01 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
百度地图api如何使用
2015/08/03 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
微信小程序实现工作时间段选择
2019/02/15 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
python截取两个单词之间的内容方法
2018/12/25 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
自定义django admin model表单提交的例子
2019/08/23 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
python标准库os库的函数介绍
2020/02/12 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
什么是servlet链?
2014/07/13 面试题
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
小学生获奖感言范文
2014/02/02 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
道歉的话语大全
2015/05/12 职场文书
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python