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入门之modf()方法的使用
May 15 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
python编程培训 python培训靠谱吗
Jan 17 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
Python中捕获键盘的方式详解
Mar 28 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Django 自定义404 500等错误页面的实现
Mar 08 Python
基于python requests selenium爬取excel vba过程解析
Aug 12 Python
python判断元素是否存在的实例方法
Sep 24 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中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Python hmac模块使用实例解析
2019/12/24 Python
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
美容院考勤制度
2014/01/30 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
推广普通话演讲稿
2014/05/23 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
模范教师事迹材料
2014/12/16 职场文书
税务会计岗位职责
2015/04/02 职场文书
公司处罚决定书
2015/06/24 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
MySQL添加索引特点及优化问题
2022/07/23 MySQL