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检测一个对象是否为字符串类的方法
May 21 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
Python解析最简单的验证码
Jan 07 Python
Python 私有函数的实例详解
Sep 11 Python
Python装饰器的执行过程实例分析
Jun 04 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
pandas实现将日期转换成timestamp
Dec 07 Python
如何基于python实现不邻接植花
May 01 Python
keras中的backend.clip用法
May 22 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
python打包生成so文件的实现
Oct 30 Python
PyCharm Community安装与配置的详细教程
Nov 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
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
python动态进度条的实现代码
2019/07/03 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
.net软件工程师面试题
2015/03/31 面试题
生日主持词
2014/03/20 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫