Elasticsearch笔记-索引(index)

索引

查看全部索引

GET _cat/indices?v&pretty


health:当前服务器健康状态: green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status:索引打开、关闭状态
index:索引名
uuid:索引统一编号
pri:主分片数量
rep:副本数量
docs.count:可用文档数量
docs.deleted:文档删除状态(逻辑删除)
store.size:主分片和副分片整体占空间大小
pri.store.size:主分片占空间大小

查看索引信息

GET index1
{
    "index1": {//索引名
        "aliases": {},//别名
        "mappings": {},//映射
        "settings": {//设置
            "index": {//设置 - 索引
                "creation_date": "1617861426847",//设置 - 索引 - 创建时间
                "number_of_shards": "1",//设置 - 索引 - 主分片数量
                "number_of_replicas": "1",//设置 - 索引 - 主分片数量
                "uuid": "J0WlEhh4R7aDrfIc3AkwWQ",//设置 - 索引 - 主分片数量
                "version": {//设置 - 索引 - 主分片数量
                    "created": "7080099"
                }
            }
        }
    }
}

查看集群状态

GET _cat/health?v

查看集群节点

GET /_cat/nodes

查看索引配置信息

GET index1/_settings

查看索引映射信息

GET index1/_mapping

创建索引

PUT index9
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "id":{
        "type":"long"
      },
      "description":{
        "type":"text"
      },
      "name":{
        "properties": {
          "firstname":{"type":"keyword"},
          "lastname":{"type":"keyword"}
        }
      }
    }
  }
}

number_of_shards:主分片数
number_of_replicas:副本数

关闭索引

如果索引被关闭,那么关于这个索引的所有读写操作都会被阻断

POST index1/_close

打开索引

POST index1/_open

冻结索引

冻结索引和关闭索引类似,关闭索引是既不能读,也不能写。而冻结索引是可以读,但是不能写

POST index1/_freeze

解冻索引

POST index1/_unfreeze

删除索引:

DELETE index1 

在多个索引库中执行操作

GET index1,index2,index3/_search
GET index1,index2,index3/_mapping
GET /_all/_settings
GET /log_2013_*/_settings
GET /log_2013_-*/_settings/index.number_*

_all代表全部

重建索引

索引添加后只可以添加新字段,不允许修改以后字段,如果需要修改,可以创建一个新索引,将数据拷贝到新索引
1、创建新索引bookdb_index2

PUT bookdb_index2
{...}

2、拷贝数据

POST _reindex
{
  "source": {
    "index": "bookdb_index"
  },
  "dest": {
    "index": "bookdb_index2"
  }
}

索引别名

索引别名就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的API来使用。_alias用于单个操作,_aliases用于执行多个原子级操作,有了它你的应用可以在零停机的情况下从旧索引迁移到新索引了

PUT /my_index_v1                                  //创建索引my_index_v1
PUT /my_index_v1/_alias/my_index       //设置别名my_index指向my_index_v1
GET /_alias/my_index                           //检测这个别名指向哪一个索引
GET /my_index_v1/_alias/                       //哪些别名指向这个索引
POST /_aliases
{    "actions": [
        { "remove": { "index": "my_index_v1", "alias": "my_index" }},
        { "add":    { "index": "my_index_v2", "alias": "my_index" }}
    ]
}

refresh

在 Elasticsearch 中,写入和打开一个新段的轻量的过程叫做refresh。默认情况下每个分片会每秒自动刷新一次。这就是为什么我们说 Elasticsearch是近实时搜索:文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。
并不是所有的情况都需要每秒刷新。可能你正在使用Elasticsearch索引大量的日志文件,你可能想优化索引速度而不是近实时搜索,可以通过设置refresh_interval ,降低每个索引的刷新频率

POST /student/_refresh

refresh间隔时间设置

PUT /student
{
  "settings": {
    "refresh_interval": "30s" 
  }
}

refresh_interval可以在既存索引上进行动态更新。在生产环境中,当你正在建立一个大的新索引时,可以先关闭自动刷新,待开始使用该索引时,再把它们调回来。

# 关闭自动刷新
PUT /users/_settings
{ "refresh_interval": -1 }

# 每一秒刷新
PUT /users/_settings
{ "refresh_interval": "1s" }

flush

手动flush如下所示,但是并不建议使用。但是当要重启或关闭一个索引,flush该索引是很有用的。

POST /index6/_flush
posted @ 2020-12-20 11:28  .Neterr  阅读(242)  评论(0编辑  收藏  举报