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 相关文章推荐
python中使用OpenCV进行人脸检测的例子
Apr 18 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
Python机器学习之决策树算法
Dec 22 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
tensorflow-gpu安装的常见问题及解决方案
Jan 20 Python
python实现连连看游戏
Feb 14 Python
Python如何使用paramiko模块连接linux
Mar 18 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
Sony CFR 320 修复改造
2020/03/14 无线电
php缓存技术介绍
2006/11/25 PHP
php相当简单的分页类
2008/10/02 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python实现三维拟合的方法
2018/12/29 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
python中JWT用户认证的实现
2020/05/18 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
2014年政风行风评议工作总结
2014/10/21 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python