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两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
python3模块smtplib实现发送邮件功能
May 22 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
Python判断有效的数独算法示例
Feb 23 Python
python selenium firefox使用详解
Feb 26 Python
Python3模拟curl发送post请求操作示例
May 03 Python
Django实现简单网页弹出警告代码
Nov 15 Python
python常用运维脚本实例小结
Feb 14 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
python numpy中setdiff1d的用法说明
Apr 22 Python
python读取mnist数据集方法案例详解
Sep 04 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编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
xml和web特殊字符
2009/04/28 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
解析vue中的$mount
2017/12/21 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
python基础教程之数字处理(math)模块详解
2014/03/25 Python
简单说明Python中的装饰器的用法
2015/04/24 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
详解numpy的argmax的具体使用
2019/05/27 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
2014年自愿离婚协议书范本
2014/09/25 职场文书
认真学习保证书
2015/02/26 职场文书
教师节简报
2015/07/20 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记