ElasticSearch的基本操作

操作ES的RESTful语法

GET请求:
 http://ip:port/index :查询索引信息
 http://ip:port/index/type/doc_id :查询指定的文档信息
POST请求:
 http://ip:port/index/type/_search: 查询文档,可以在请求体中添加json字符串来代表查询条件
 http://ip:port/index/type/doc_id/_update: 修改文档,在请求体中添加json字符串来代表修改的信息
PUT请求:
 http://ip:port/index : 创建一个索引,需要在请求体中指定索引的信息
 http://ip:port/index/type/_mappings:代表创建索引时,指定索引文档存储属性的信息
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、查看一个索引

kibana-Managemengt
1.management
2.
#查看索引信息
GET /person

3、删除一个索引

1.management
2.
#删除索引
DELETE /person

3.4 ES中Field可以指定的类型

字符串类型:

  • 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 类型,表达true 和false

二进制类型:

  • 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

其他的数据类型,参考官网

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

创建索引并指定数据结构

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

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

2、修改文档

覆盖式修改

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

doc修改方式

#修改文档,使用doc 方式
POST /book/novel/1/_update
{
  "doc":{
      #指定需要修改的field和对应的值
    "count":566666
  }
}

3、删除文档

#根据id删除文档
DELETE /book/novel/3mEnk3MBaSKoGN4T2olw 

你可能感兴趣的:(ElasticSearch的基本操作)