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处理字符串之isspace()方法的使用
May 19 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
python九九乘法表的实例
Sep 26 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
Django实现学生管理系统
Feb 26 Python
详解Python的三种可变参数
May 08 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
python如何编写win程序
Jun 08 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
python如何构建mock接口服务
Jan 28 Python
python 爬取京东指定商品评论并进行情感分析
May 27 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
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
QQ登录简单实现代码
2021/03/09 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
详解Document.Cookie
2015/12/25 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
python制作最美应用的爬虫
2015/10/28 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python自动发送邮件脚本
2018/06/20 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
python爬虫基础知识点整理
2020/06/02 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
pymysql模块使用简介与示例
2020/11/17 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
电大学习个人自我评价范文
2013/10/04 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
入股协议书范本
2014/04/14 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers