3. Elasticsearch 索引基本操作

引言

上一篇教大家安装了Elasticsearch-head插件和kibana可视化分析工具,今天就教大家在kibana的dev-tool里的控制台中如何操作索引

基础概念

索引(index)

索引(index)是elasticsearch的一个逻辑存储,可以理解为关系型数据库中的数据库,es可以把索引数据存放到一台服务器上,也可以sharding后存到多台服务器上,每个索引有一个或多个分片(扩容),每个分片可以有多个副本(容错)。

索引类型(index_type)

在es中,一个索引对象可以存储多个不同用途的对象,通过索引类型(index_type)可以区分单个索引中的不同对象,可以理解为关系型数据库中的表。每个索引类型可以有不同的结构,但是不同的索引类型不能为相同的属性设置不同的类型。
在elasticsearch高版本中,type的概念会逐渐被取消,大家只要记住:一个索引可以对应多个type。

文档(document)

存储在es中的主要实体叫文档(document),可以理解为关系型数据库中表的一行记录。每个文档由多个字段构成,es是一个非结构化的数据库,同一个索引之下,每个文档可以有不同的字段,并且有一个唯一的标识符。

映射(mapping):

ES默认是动态创建索引和索引类型的mapping的。这就相当于无需定义Solr中的Schema,无需指定各个字段的索引规则就可以索引文件,很方便。但有时方便就代表着不灵活。比如,ES默认一个字段是要做分词的,但我们有时要搜索匹配整个字段却不行。如有统计工作要记录每个城市出现的次数。对于NAME字段,若记录“new york”文本,ES可能会把它拆分成“new”和“york”这两个词,分别计算这个两个单词的次数,而不是我们期望的“new york”。

索引操作

Kibana中Dev Tools的控制台里,分为输入区和结果显示区,我们输入命令后,点击运行按钮,即可将请求发至Elasticsearch Server,Elasticsearch根据请求返回相应的结果

查看索引

##查看ES中的所有索引
GET /_cat/indices

创建索引

在创建的时候,指定分片数量和副本数量,和其mapping(可以暂时把它理解为数据结构)
其数据结构如下

field type
name text
sex int
age int
birthday int
PUT /my_index
{
  "settings": {
    "number_of_shards": 3, 
    "number_of_replicas": 2
  },
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "sex":{
        "type": "long"
      },
      "age":{
        "type": "long"
      },
      "birthday":{
        "type": "date"      }
    }
  }
}

删除索引

##指定index名称
DELETE /my_index

更新索引

同创建索引一样

插入document

POST /my_index/_doc/1
{
  "name": "stono",
  "sex": 1,
  "age": 18,
  "birthday": "1999-11-11"
}
posted @ 2021-07-01 15:25  心若向阳花自开  阅读(262)  评论(0编辑  收藏  举报