程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 搜索数据库 - ElasticSearch

    • ElasticSearch - 基础概念
    • ElasticSearch - 安装
    • ElasticSearch - 索引操作
      • 1. 创建索引 (PUT 请求)
        • Postman 操作
        • Kibana 操作
      • 2. 查看所有索引 (GET 请求)
        • Postman 操作
        • Kibana 操作
      • 3. 查看单个索引 (GET 请求)
        • Postman 操作
      • 4. 删除索引 (DELETE 请求)
        • Postman 操作
      • 5. 打开/关闭索引 (POST 请求)
        • 关闭索引 (POST 请求)
        • 打开索引 (POST 请求)
      • 6. 索引的自动创建
        • 禁止自动创建索引
      • 7. 总结
    • ElasticSearch - 映射操作
    • ElasticSearch - 文档操作
    • ElasticSearch - 高级操作
    • ElasticSearch - 倒排索引
    • ElasticSearch - 分词器
    • ElasticSearch - Java操作
    • ElasticSearch - 多框架集成
    • ElasticSearch - 搭建集群
    • ElasticSearch - 进阶概念
    • ElasticSearch - 分布式集群和路由计算
    • ElasticSearch - 分片控制流程
    • ElasticSearch - 分片操作原理
    • ElasticSearch - 多种分析器
    • ElasticSearch - 冲突问题处理
    • ElasticSearch - 进阶优化
    • ElasticSearch - 面试题
  • 搜索数据库 - ElasticSearch
  • 搜索数据库 - ElasticSearch
scholar
2021-11-14
目录

ElasticSearch - 索引操作

  • 1. 创建索引 (PUT 请求)
    • Postman 操作
    • Kibana 操作
  • 2. 查看所有索引 (GET 请求)
    • Postman 操作
    • Kibana 操作
  • 3. 查看单个索引 (GET 请求)
    • Postman 操作
  • 4. 删除索引 (DELETE 请求)
    • Postman 操作
  • 5. 打开/关闭索引 (POST 请求)
    • 关闭索引 (POST 请求)
    • 打开索引 (POST 请求)
  • 6. 索引的自动创建
    • 禁止自动创建索引
  • 7. 总结

使用 Postman 进行测试,所以主要内容围绕该工具进行,而 Kibana 也会有相应的代码,只是不过多描述。

Postman 官网下载:https://www.postman.com/downloads/ (opens new window)

Windows 访问地址:http://127.0.0.1:9200

如果 ElasticSearch 部署到其他服务器,则地址需要改变:http://ip:port/url

对比关系型数据库,创建索引就等同于创建数据库


# 1. 创建索引 (PUT 请求)

索引是 Elasticsearch 中存储数据的基础结构,类似于关系型数据库中的表。通过 PUT 请求可以在 Elasticsearch 中创建索引。

操作目的:创建一个新的索引,类似于在 MySQL 中创建一个数据库。

# Postman 操作

在 Postman 中使用 PUT 请求来创建一个新的索引,创建的索引名称为 shopping。

  • 请求 URL: http://127.0.0.1:9200/shopping
  • 请求方法: PUT
  • 分片默认值: Elasticsearch 7.0.0 及之后版本默认 1 个主分片,而 7.0.0 之前的版本默认 5 个主分片。

操作步骤:

  1. 打开 Postman,选择 PUT 请求方法。
  2. 在 URL 栏中输入 http://127.0.0.1:9200/shopping,这里的 shopping 是您要创建的索引名称。
  3. 点击发送请求按钮,等待服务器返回结果。

发送请求后,您会看到如下响应结果:

image-20211114192505535

响应结果说明:

{
    "acknowledged": true,             // 表示服务器成功处理了创建索引的请求
    "shards_acknowledged": true,      // 索引的分片已经成功创建
    "index": "shopping"               // 创建的索引名称
}
1
2
3
4
5
  • acknowledged: 表示 Elasticsearch 接受并成功执行了请求。
  • shards_acknowledged: 表示主分片和副本分片已经成功分配并可用。
  • index: 这是您创建的索引名称。

如果您重复创建相同名称的索引,会返回一个错误信息,说明已经存在此索引:

image-20211114192731638

# Kibana 操作

在 Kibana 中,您不需要指定 http://ip:port,因为 Kibana 已经在配置文件中处理了这些信息。您可以直接使用如下命令创建索引:

PUT /shopping
1
  • 语法说明: 使用 PUT 请求创建索引。/shopping 是索引的路径,表示您希望创建一个名为 shopping 的索引。
  • 分片数量: Elasticsearch 默认使用 1 个主分片,您可以根据需要在请求体中指定更多的配置,例如分片数和副本数。

# 2. 查看所有索引 (GET 请求)

Elasticsearch 提供了一个专门的 API 来查看所有索引,类似于 MySQL 中的 SHOW TABLES。通过 GET 请求可以列出当前 Elasticsearch 实例中的所有索引。

操作目的:查看当前 Elasticsearch 实例中所有已经创建的索引。

# Postman 操作

  • 请求 URL: http://127.0.0.1:9200/_cat/indices?v
  • 请求方法: GET
  • 参数解释:
    • _cat/indices: 该路径用于显示索引列表,类似于 MySQL 中的 SHOW TABLES。
    • ?v: 参数 v 代表 verbose(详细),它会为结果添加表头信息。

操作步骤:

  1. 打开 Postman,选择 GET 请求方法。
  2. 在 URL 栏中输入 http://127.0.0.1:9200/_cat/indices?v。
  3. 点击发送请求按钮,服务器将返回当前所有索引的信息。

以下为 Postman 中查看所有索引的操作截图:

image-20211114192947796

响应结果的字段说明:

字段 含义
health 当前服务器的健康状态,green 表示集群完整,yellow 表示部分节点异常但可用,red 表示索引不可用
status 索引的状态,open 表示索引打开,可以进行读写操作;close 表示索引关闭,不可读写
index 索引的名称
uuid 唯一标识此索引的 UUID
pri 主分片的数量
rep 副本分片的数量
docs.count 文档数量
docs.deleted 已删除的文档数量(逻辑删除)
store.size 索引占用的总存储大小(包括主分片和副本分片)
pri.store.size 主分片占用的存储空间大小

# Kibana 操作

在 Kibana 中查看所有索引的命令如下:

GET /_cat/indices?v
1
  • 语法说明: GET /_cat/indices?v 会返回当前实例中的所有索引,?v 参数用于显示表头信息,确保结果易读。

# 3. 查看单个索引 (GET 请求)

可以通过 GET 请求查看某个特定索引的详细信息,例如分片数量、映射结构、创建时间等。此操作与创建索引的请求非常相似,区别在于使用 GET 方法。

操作目的:获取某个特定索引的详细信息,包括设置、映射和元数据信息。

# Postman 操作

  • 请求 URL: http://127.0.0.1:9200/shopping
  • 请求方法: GET

操作步骤:

  1. 打开 Postman,选择 GET 请求方法。
  2. 在 URL 栏中输入 http://127.0.0.1:9200/shopping,shopping 是您要查询的索引名称。
  3. 点击发送请求按钮,服务器将返回该索引的详细信息。

以下为 Postman 中查看单个索引的操作截图:

image-20211114193331117

响应结果说明:

{
    "shopping": { 
        "aliases": {},                   // 索引的别名,此处为空
        "mappings": {},                  // 索引的映射,存储文档结构的定义
        "settings": {                    // 索引的设置
            "index": {
                "creation_date": "1614265373911",  // 创建时间(时间戳格式)
                "number_of_shards": "1",           // 主分片数量,默认为 1
                "number_of_replicas": "1",         // 副本分片数量,默认为 1
                "uuid": "eI5wemRERTumxGCc1bAk2A",  // 唯一标识符
                "version": {
                    "created": "7080099"           // Elasticsearch 版本
                },
                "provided_name": "shopping"        // 索引名称
            }
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Kibana 操作

在 Kibana 中查看某个特定索引的命令如下:

GET /shopping
1
  • 语法说明: GET /shopping 请求会返回名为 shopping 的索引的所有相关信息,包括分片配置、映射结构、索引设置等。

# 4. 删除索引 (DELETE 请求)

当不再需要某个索引时,可以通过 DELETE 请求来删除它。删除索引相当于在数据库中删除一个表,这会导致该索引下的所有数据被移除。

操作目的:删除一个不再需要的索引。

# Postman 操作

  • 请求 URL: http://127.0.0.1:9200/shopping
  • 请求方法: DELETE

操作步骤:

  1. 打开 Postman,选择 DELETE 请求方法。
  2. 在 URL 栏中输入 http://127.0.0.1:9200/shopping,shopping 是您要删除的索引名称。
  3. 点击发送请求按钮,服务器将删除该索引并返回删除结果。

以下为 Postman 中删除索引的操作截图:

image-20211114193543345

Kibana 操作

在 Kibana 中删除索引的命令如下:

DELETE /shopping
1
  • 语法说明: DELETE /shopping 请求会删除名为 shopping 的索引,该操作不可恢复,数据将被永久删除。

# 5. 打开/关闭索引 (POST 请求)

关闭索引会使该索引处于不可读写状态,仅保留元数据。如果您需要暂时停止对某个索引的操作,可以选择关闭它。再次打开后,索引恢复到可读写状态。

操作目的:关闭或打开某个索引,以控制其读写状态。

# 关闭索引 (POST 请求)

  • 请求 URL: http://127.0.0.1:9200/shopping/_close
  • 请求方法: POST

操作步骤:

  1. 打开 Postman,选择 POST 请求方法。
  2. 在 URL 栏中输入 http://127.0.0.1:9200/shopping/_close,shopping 是您要关闭的索引。
  3. 点击发送请求按钮,索引将被关闭,此时该索引的元数据仍然存在,但无法进行读写操作。

# 打开索引 (POST 请求)

  • 请求 URL: http://127.0.0.1:9200/shopping/_open
  • 请求方法: POST

操作步骤:

  1. 打开 Postman,选择 POST 请求方法。
  2. 在 URL 栏中输入 http://127.0.0.1:9200/shopping/_open,shopping 是您要打开的索引。
  3. 点击发送请求按钮,索引将恢复到可读写状态。

Kibana 操作

关闭索引:

POST /shopping/_close
1

打开索引:

POST /shopping/_open
1
  • 语法说明: POST /shopping/_close 用于关闭索引,POST /shopping/_open 用于重新打开索引。

# 6. 索引的自动创建

在 Elasticsearch 中,当向不存在的索引添加数据时,Elasticsearch 会自动创建该索引。例如,向 http://127.0.0.1:9200/shopping/_doc 添加文档时,如果 shopping 索引不存在,Elasticsearch 会自动创建它。

# 禁止自动创建索引

如果您不希望 Elasticsearch 自动创建索引,可以通过修改配置文件来禁用此功能。

  • 配置文件路径:config/elasticsearch.yml
  • 添加以下配置:
action.auto_create_index: false
1

这将禁止 Elasticsearch 在没有显式创建索引的情况下自动创建索引。


# 7. 总结

  • Elasticsearch 中的索引操作与关系型数据库中的表操作类似。创建、查看、删除等操作可以通过 HTTP 请求轻松完成。
  • 查看所有索引的命令为:GET /_cat/indices?v,类似于 SHOW TABLES。
  • 索引的自动创建功能非常灵活,但可以根据需求通过配置文件禁用。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
ElasticSearch - 安装
ElasticSearch - 映射操作

← ElasticSearch - 安装 ElasticSearch - 映射操作→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式