ElasticSearch学习笔记三:基础操作(一)

一、前言

上一篇文章中,我们学习了如何使用Java客户端去连接并且简单的操作ES,今天我们将对ES中的基本操作进行学习,包括索引操作、映射操作、文档操作。

二、索引操作

简单回顾一下索引,ES中的索引就有相同结构的数据的集合,对应到关系型数据库例如Mysql中就是表。接下来我们学习索引的基本操作。

1、创建索引

语法:

PUT /索引名
{
   
  "settings":{
   
    ....
  },
  "mappings":{
   
    "properties":{
   
      "field1": {
    "type": "类型" },
      "field2": {
    "type": "类型2" }
      ...
    }
  },
  "aliases": {
   
    ....
  }
}

settings:表示对当前索引设置一些属性,包括但不限于 分片数量、副本分片数。

mappings:表示映射,即A字段是什么类型,B字段是什么类型。

aliases:别名,可以给索引设置别名。

例如我们要创建一个酒店(hotel)索引,副本数为1,分片数为1(因为目前是单机),有3个字段 id、name、price。

PUT /hotel
{
   
  "settings": {
   
    "number_of_replicas": 1,
    "number_of_shards": 1
  },
  "mappings": {
   
      "properties": {
   
        "id":{
   
          "type": "long"
        },
        "name":{
   
          "type": "text"
        },
        "price":{
   
          "type": "double"
        }
      }
    }
}

类似于Mysql中的

CREATE TABLE hotel (
    id BIGINT PRIMARY KEY,
    name VARCHAR(255),
    price DOUBLE
) ENGINE=InnoDB;

2、删除索引

DLETE /{索引名}

删除索引,没太多可以说的就是把索引删除掉,类似Mysql中的Drop Table

3、关闭索引

在某些场景下,某个索引暂时不使用了,但时候后期可能又会使用,比如归档了,此时可以把当前索引关闭,被关闭的索引将不能写入和搜索,只能通过ES特定的API或者监控工具能看到索引的元数据信息。

语法:POST /索引名/_close

例如:POST /hotel/_close

4、打开索引

有关闭索引那么一定就有开启索引,也很好理解就是把关闭的索引重新打开,让他可以继续写入和搜索。

语法:POST /索引名/_open

例如:POST/索引名/_open

5、索引别名

顾名思义就是给索引设置一个别名,是索引别名和索引之间建立某种逻辑关系。Mysql中也有别名,例如在使用JOIN的时候我们通常会使用别名(select t1.id,t2.name from table t1 left join on table t2 on t1.id = t2.id)

这里列举一个ES中别名的使用场景,例如我们建立了3个索引,分别代表hotel(酒店)1,2,3月份的入住情况,假设此时是4月了,我们想查询1~3月的数据,则需要分别查询1月的索引、2月的索引、3月的索引这样代码整体就不优雅了,所以我们可以给这个3个索引设置相同的别名,例如就叫 last_three_month,那么在应用层只要直接对last_three_month 进行搜索即可,这里也就是我们说的建立了逻辑上的关联,如下图

语法

POST _aliases
{
   
  "actions"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值