0
点赞
收藏
分享

微信扫一扫

Elasticsearch学习2

王老师说 2022-02-04 阅读 48

》继续上次的学习

【07.Redis的结构】

三.ElasticSearch基本操作
3.1 ES的结构
》ES是如何存储数据的

ES服务
1、ES可以搭建集群,会对索引进行分片,默认一个索引分五片
好处:扩大容量,提升检索效率
2、ES会对索引进行备份,从分片一般情况不会分担查询压力。
好处:避免数据丢失,高可用
ES的分片讲解
ES的索引 相当于mysql的数据库
ES的索引分为类型type,相当于mysql的表
ES5.x版本中,一个index可以创建多个type;
ES6.x版本中,一个index可以创建一个type;(以下以此为主)
ES7.x版本中,一个index没有type;
ES的Type
ES的type下的文档(document),相当于mysql表中的每条记录;
ES的type下的文档(document),分为field(属性),相当于mysql中记录的字段
ES-文档

ES-属性
3.1.1 索引index,分片和备份
ES的服务中,可以创建多个索引;
每个索引默认被分成5片存储;
每个分片都会存在至少一个备份分片;
备份分片默认不会帮助检索数据,当ES检索压力特别大的时候,备份分片才会帮助检索数据;
备份的分片必须放在不同的服务器中;
3.1.2类型Type
一个索引下,可以创建多个类型;
PS:根据版本不同,类型的创建数量不同;
3.1.3文档Doc
一个类型下,可以有多个文档,这个文档就类似于mysql中的多行数据。
3.1.4属性field
一个文档中,可以包含多个属性,类似于mysql表中的一行数据存在多个列。

【08ES的restful语法】

3.2 操作ES的restful语法
restful语法:根据请求方式不同,决定操作业务是什么
1 get请求:
http://ip:port/index:查询索引信息
http://ip:port/index/type/doc_id:查询指定的文档信息
2.post请求
http://ip:port/index/type/_search:查询,可以在请求体中添加json字符串代表查询条件
http://ip:port/index/type/doc_id/_update:修改文档,在请求体中指定json字符串代表修改的具体信息
3.put请求
http://ip:port/index:创建一个索引,需要在请求体中指定索引的信息,类型,结构;
http://ip:port/index/type/_mappings:代表创建索引时,指定索引文档存储的属性的信息
4.Delete请求
http://ip:port/index:删除跑路(慎用操作)
http://ip:port/index/type/doc_id:删除指定的文档

请求方式和路径后追加的内容不同,来决定处理
ES-各种操作

【09ES索引的操作】

3.3索引的操作
3.3.1创建一个索引
先创建一个简单的索引,只有分片和备份,不指定结构化数据。
ES-创建一个索引1

ES-创建一个索引
索引名称、分片和备份
使用management查看创建结果,其中健康为黄色是因为此处为单机备份,单机备份并没有实际效用
ES-management查看结果
3.3.2 查看索引信息
方式一:使用kibana图形化界面-management。
方式二:kibana的restful语言
ES-restful查询索引
注意:鼠标要放在方法行中,否则执行可能为空
别名
数据的结构化
设置
3.3.3 删除索引
方式一:使用kibana的management;
方式二:使用restful语法
ES-删除索引

【10.ES中常用的Field类型】

接下来看如何指定结构化
3.3.4ES中field可以指定的类型
接着指定索引中的结构
先了解ES的文档属性-整型、字符串、时间,这些类型在ES是如何分配的。
官网-学习-文档-other version
Mapping - field datatypes(属性类型)
ES-查看文档
核心数据类型
ES-核心数据类型

  • 字符串类型String :
    1.text:一般用于全文检索,将当前field进行分词。可用于内容描述等。
    2.keyword:当前field不会被分词。可用于关键字。
  • 数值类型number:
    long
    integer:
    short
    byte
    double
    float
    half_float:精度比float小一半
    scaled_float:根据一个long和scaled来表达一个浮点型,long-345,scaled-100 ->3.45
  • 时间类型date
    date
    特点:可以指定具体的输入格式(3种):年月日和毫秒
    ES-3种时间格式
  • 布尔类型
    boolean,表达true和false
  • 二进制类型
    binary,暂时支持Base64 encode string
  • 范围类型range
    赋值时,无需指定具体的内容,只需要存储一个范围即可,指定gt,lt,gte,lte。有6个:integer_range,float_range,long_range,double_range,date_range,ip_range
    除了核心数据类型,还有其他数据类型,重点看Gao和ip。
    ES-其他数据类型
  • 经纬度类型
    geo_point:用来存储经纬度,可用于位置查询
  • ip类型
    ip:可以存储IPv4或者Ipv6
    ES-其他类型参考
举报

相关推荐

0 条评论