Skip to content

和学习MySQL一样,学习MySQL我们需要理解库、表、字段等概念。那么学习ElasticSearch,我们也需要先学习其核心概念才能理解如何使用,主要有三个概念,如下所示:

索引 Index

一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个商品数据的索引,一个订单数据的索引,还有一个用户数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。

映射 Mapping

映射是定义一个文档和它所包含的字段如何被存储和索引的过程。在默认配置下,ES可以根据插入的数据自动地创建mapping,也可以手动创建mapping。 mapping中主要包括字段名、字段类型等

文档 Document

文档是索引中存储的一条条数据。一条文档是一个可被索引的最小单元。ES中的文档采用了轻量级的JSON格式数据来表示。

索引的基本操作

索引只能被删除不能被修改,所以索引的操作包含增删查,不包含修改索引操作。首先我们需要打开输入命令的控制台。 ElasticSearch控制台

shell
# 创建索引
PUT /products

PUT /orders
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  }
}

# 查看ES中的索引
GET /_cat/indices?v

# 删除索引
DELETE /products

添加索引

顶部会有警告信息,我们不用管 创建ES索引

查询索引

查询ES索引

TIP

health:代表健康状态,图中有详细说明,red才是不能使用的,yellow和green都是可以正常使用的。

index开头是"."代表系统索引,剩下的才是我们创建的

pri代表主数据块,rep代表备用数据块,当主数据和备用数据都在同一台机器上,不能满足高可用,所以才提示yellow

接下来我们指定主数据块为1,备用数据块为0,发现已经health变成green了

删除索引

删除ES索引

映射的基本操作

我们再创建索引的时候,一般会将映射一同创建,索引与映射一般是不分家的。

创建索引并指定映射

  • 字符串类型: keyword关键字、关键词,而text一般是一段文本
  • 数字类型:integer long
  • 小数类型:float double
  • 布尔类型:boolean
  • 日期类型:date
json
PUT /products
{ 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  }, 
  "mappings": {
    "properties": {
      "title":{
        "type": "keyword"
      },
      "price":{
        "type": "double"
      },
      "created_at":{
        "type": "date"
      },
      "description":{
        "type": "text"
      }
    }
  }
}

查看某个索引的映射信息

shell
GET /products/_mapping

TIP

映射无法修改或删除,查看products索引的映射信息,返回数据如下:

json
{
  "products" : {
    "mappings" : {
      "properties" : {
        "created_at" : {
          "type" : "date"
        },
        "description" : {
          "type" : "text"
        },
        "price" : {
          "type" : "double"
        },
        "title" : {
          "type" : "keyword"
        }
      }
    }
  }
}