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文件处理
Feb 29 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
分享PyCharm的几个使用技巧
Nov 10 Python
使用Python实现画一个中国地图
Nov 23 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Python3列表List入门知识附实例
Feb 09 Python
python统计文章中单词出现次数实例
Feb 27 Python
Python实现寻找回文数字过程解析
Jun 09 Python
Django路由层如何获取正确的url
Jul 15 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实现文件下载功能的几个代码分享
2014/05/10 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
js 目录列举函数
2008/11/06 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
python实现windows下文件备份脚本
2018/05/27 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
经典优秀个人求职自荐信格式
2013/09/25 职场文书
师范生实习的个人自我鉴定
2013/10/20 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
门店店长岗位职责
2015/04/14 职场文书
学子宴致辞大全
2015/07/27 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫