ElasticSearch学习2《es结构、es的restful语法、索引的操作、文档的增删改操作》

上一篇:ElasticSearch学习1《下载elasticsearch、kibana、IK分词器》

一、ES结构

1、索引index

ES服务中会创建多个索引
每个缩影默认被分成5个分片
每个分片存在至少一个备份分片
备份分片 不会帮助检索数据(当ES检索压力特别大的时候才,备份分片才会帮助检索数据)
备份的分片必须放在不同的服务器中

在这里插入图片描述

2、类型type

一个索引下可以创建多个类型
PS:版本不同,类型的创建也不同

在这里插入图片描述

3、文档document

一个类型下可以有多个文档,这个文档就相当于mysql表中的多行数据

在这里插入图片描述

4、属性field

一个文档中可以包含多个属性,类似于mysql 表中的一行数据有多个列

在这里插入图片描述

二、操作ES的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: 删除指定的文档

三、索引的操作

1、创建一个索引

#number_of_shards 分片
#number_of_replicas 备份

PUT /person
{
  "settings": {
    "number_of_shards": 5, 
    "number_of_replicas": 1
  }
}

2、查看一个索引

GET /person

3、删除 索引

DELETE /person

4、ES中Field可以指定的类型

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/mapping-types.html

字符串类型:
  text: 一般用于全文检索,将当前field 进行分词
  keyword:当前field  不会进行分词
  
数值类型:
  long:
  Intger:
  short:
  byte:
  double:
  float:
  half_float: 精度比float 小一半
  scaled_float:根据一个long 和scaled 来表达一个浮点型 long-345, -scaled 100 ->3.45
  
时间类型:
  date类型,根据时间类型指定具体的格式
    PUT my_index
    {
      "mappings": {
        "_doc": {
          "properties": {
            "date": {
              "type":   "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        }
      }
    }
    
布尔类型:
  boolean 类型,表达truefalse
  
二进制类型:
  binary类型暂时支持Base64编码的字符串
  
范围类型:
  integer_range:
  float_range:
  long_range:赋值时,无需指定具体的内容,只需存储一个范围即可,gte,lte,gt,lt,
  double_range:
  date_range:
  ip_range:

    PUT range_index
    {
      "settings": {
        "number_of_shards": 2
      },
      "mappings": {
        "_doc": {
          "properties": {
            "expected_attendees": {
              "type": "integer_range"
            },
            "time_frame": {
              "type": "date_range", 
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        }
      }
    }

    PUT range_index/_doc/1?refresh
    {
      "expected_attendees" : { 
        "gte" : 10,
        "lte" : 20
      },
      "time_frame" : { 
        "gte" : "2015-10-31 12:00:00", 
        "lte" : "2015-11-01"
      }
    }
    
经纬度类型:
  geo_point:用来存储经纬度
  
IP类型:
  ip:可以存储IPV4 和IPV6
  
其他的数据类型,参考官网

5、创建索引并指定数据结构

#创建索引,指定数据类型
PUT /book
{
  "settings": {
    #分片数
    "number_of_shards": 5,
    #备份数
    "number_of_replicas": 1
  },
    #指定数据类型
 "mappings": {
    #类型 Type
   "novel":{
    #文档存储的field
     "properties":{
       #field属性名
       "name":{
         #类型
         "type":"text",
         #指定分词器
         "analyzer":"ik_max_word",
         #指定当前的field可以被作为查询的条件
         "index":true,
         #是否需要额外存储
         "store":false
       },
       "author":{
         "type":"keyword"
       },
       "count":{
         "type":"long"
       },
       "on-sale":{
         "type":"date",
           #指定时间类型的格式化方式
         "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
       },
        "descr":{
          "type":"text",
          "analyzer":"ik_max_word"
       }
     }
   }
 }
}

四、文档操作

文档在ES服务中的唯一标识, _indx ,_type,_id 三个内容为组合,锁定一个文档,操作时添加还时修改操作,

1、新建文档

自动生成id
#添加文档,自动生成id
POST /book/novel
{
  "name":"盘龙",
  "author":"我吃西红柿",
  "count":100000,
  "on-sale":"2001-01-01",
  "descr":"大小的血睛鬃毛狮,力大无穷的紫睛金毛猿,毁天灭地的九头蛇皇,携带着毁灭雷电的恐怖雷龙……这里无奇不有,这是一个广博的魔幻世界。强者可以站在黑色巨龙的头顶遨游天际,恐怖的魔法可以焚烧江河,可以毁灭城池,可以夷平山岳……"
}

#添加文档,手动指定id
PUT /book/novel/1
{
  "name":"红楼梦",
  "author":"曹雪芹",
  "count":10000000,
  "on-sale":"2501-01-01",
  "descr":"中国古代章回体长篇小说,中国古典四大名著之一,一般认为是清代作家曹雪芹所著。小说以贾、史、王、薛四大家族的兴衰为背景,以富贵公子贾宝玉为视角,以贾宝玉与林黛玉、薛宝钗的爱情婚姻悲剧为主线,描绘了一批举止见识出于须眉之上的闺阁佳人的人生百态,展现了真正的人性美和悲剧美"
}

2、修改文档

1.覆盖式修改

#添加文档,手动指定id

PUT /book/novel/1
{
  "name":"红楼梦",
  "author":"曹雪芹",
  "count":1000444,
  "on-sale":"2501-01-01",
  "descr":"中国古代章回体长篇小说,中国古典四大名著之一,一般认为是清代作家曹雪芹所著。小说以贾、史、王、薛四大家族的兴衰为背景,以富贵公子贾宝玉为视角,以贾宝玉与林黛玉、薛宝钗的爱情婚姻悲剧为主线,描绘了一批举止见识出于须眉之上的闺阁佳人的人生百态,展现了真正的人性美和悲剧美"
}
2.使用doc修改方式

#修改文档,使用doc 方式

POST /book/novel/1/_update
{
  "doc":{
      #指定需要修改的field和对应的值
    "count":566666
  }
}

3、删除文档

#根据id删除文档

DELETE /book/novel/3mEnk3MBaSKoGN4T2olw 

上一篇:ElasticSearch学习1《下载elasticsearch、kibana、IK分词器》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值