12篇 Es命令简介

Elasticsearch是一个基于Apache Lucene构建的开源搜索引擎。它提供了一个分布式、多用户能力的全文搜索引擎,基于RESTful Web接口。以下是一些常用的Elasticsearch命令,这些命令可以帮助你开始使用和管理Elasticsearch:

1. **启动Elasticsearch节点**:
   ```
   bin/elasticsearch
   ```
   这个命令会启动一个Elasticsearch节点,它是Elasticsearch集群中的一个独立服务器。

2. **创建索引**:
   ```
   PUT /my_index
   {
     "settings": {
       "number_of_shards": 3,
       "number_of_replicas": 2
     }
   }
   ```
   这个命令创建了一个名为`my_index`的新索引,并设置了分片数量和副本数量。

3. **索引文档**:
   ```
   POST /my_index/_doc
   {
     "field1": "value1",
     "field2": "value2"
   }
   ```
   这个命令在`my_index`索引中创建了一个新的文档,包含了`field1`和`field2`两个字段。

4. **获取文档**:
   ```
   GET /my_index/_doc/1
   ```
   这个命令获取了`my_index`索引中ID为1的文档。

5. **更新文档**:
   ```
   POST /my_index/_doc/1/_update
   {
     "doc": {
       "field1": "new_value1"
     }
   }
   ```
   这个命令更新了ID为1的文档中的`field1`字段。

6. **删除文档**:
   ```
   DELETE /my_index/_doc/1
   ```
   这个命令删除了`my_index`索引中ID为1的文档。

7. **搜索文档**:
   ```
   GET /my_index/_search
   {
     "query": {
       "match": {
         "field1": "value1"
       }
     }
   }
   ```
   这个命令在`my_index`索引中搜索`field1`字段包含`value1`的文档。

8. **聚合搜索结果**:
   ```
   GET /my_index/_search
   {
     "size": 0,
     "aggs": {
       "group_by_field": {
         "terms": {
           "field": "field1"
         }
       }
     }
   }
   ```
   这个命令在`my_index`索引中进行了一个聚合搜索,按照`field1`字段的值对结果进行分组。

9. **优化索引**:
   ```
   POST /my_index/_optimize
   ```
   这个命令对`my_index`索引进行优化,以提高查询效率和节省存储空间。

10. **关闭索引**:
    ```
    POST /my_index/_close
    ```
    这个命令关闭了`my_index`索引,使其暂时不可用,但不会删除索引数据。

这些命令是Elasticsearch中的基础操作,可以帮助你开始构建和管理你的搜索引擎。在使用这些命令时,请确保你已经正确安装并配置了Elasticsearch,并且对Elasticsearch的基本概念有所了解。

11. **打开关闭的索引**:
    ```
    POST /my_index/_open
    ```
    这个命令用于打开一个之前关闭的索引,使其重新可用。

12. **刷新索引**:
    ```
    POST /my_index/_refresh
    ```
    `_refresh` API使得对索引的所有文档的最近写入操作对搜索可见。

13. **获取索引统计信息**:
    ```
    GET /my_index/_stats
    ```
    这个命令提供了索引的统计信息,包括存储、索引、文档数量和删除文档的数量等。

14. **更新索引设置**:
    ```
    PUT /my_index/_settings
    {
      "index" : {
        "number_of_replicas" : 1
      }
    }
    ```
    这个命令用于更新索引的设置,例如改变副本的数量。

15. **删除索引**:
    ```
    DELETE /my_index
    ```
    这个命令用于删除一个完整的索引,包括所有的数据和配置。

16. **批量操作**:
    ```
    POST /my_index/_bulk
    {
      "index" : { "_id" : "1" },
      "field1" : "value1"
    }
    {
      "delete" : { "_id" : "2" }
    }
    ```
    `_bulk` API允许你在一个请求中执行多个索引、更新或删除操作。

17. **搜索模板**:
    ```
    GET /_template/template_name
    ```
    这个命令用于获取保存的搜索模板,模板可以包含动态参数,用于重复执行相同的搜索。

18. **创建或更新模板**:
    ```
    PUT /_template/template_name
    {
      "index_patterns" : ["my_index*"],
      "settings" : {
        "number_of_shards" : 1
      },
      "mappings": {
        "properties": {
          "field1": { "type": "text" }
        }
      },
      "aliases": {
        "alias_name": {}
      }
    }
    ```
    这个命令用于创建或更新索引模板,模板定义了索引模式、设置、映射和别名。

19. **获取集群健康状态**:
    ```
    GET /_cluster/health
    ```
    这个命令提供了集群的整体健康状态,包括哪些节点是活跃的,哪些索引是红色的(有未分配的分片),以及集群的其他重要信息。

20. **节点信息**:
    ```
    GET /_nodes
    ```
    这个命令提供了集群中所有节点的信息,包括它们的硬件、版本、运行状况等。

这些命令覆盖了Elasticsearch的许多方面,从索引管理到文档操作,再到集群监控。掌握这些命令对于Elasticsearch的管理和维护至关重要。在使用这些命令时,务必要了解每个命令的作用和潜在影响,以确保不会意外地修改或删除重要数据。

 

21. **执行SQL查询**:

    ```

    POST /my_index/_search

    {

      "query": {

        "bool": {

          "must": [

            { "match": { "field1": "value1" }},

            { "range": { "field2": { "gte": 10 } }}

          ]

        }

      },

      "size": 10

    }

    ```

    这个命令使用Elasticsearch的SQL功能来执行查询,类似于传统的SQL `SELECT` 语句。它允许你使用布尔逻辑、范围查询等。

 

22. **更新文档的部分字段**:

    ```

    POST /my_index/_doc/1/_update_by_query

    {

      "script": {

        "source": "ctx._source.field1 = 'new_value1'",

        "lang": "painless"

      }

    }

    ```

    这个命令使用脚本更新匹配查询条件的文档中的字段。这可以用于动态更新文档,而不需要预先知道文档的全部内容。

 

23. **删除索引中的所有文档**:

    ```

    POST /my_index/_delete_by_query

    {

      "query": {

        "match_all": {}

      }

    }

    ```

    这个命令删除索引中匹配查询的所有文档。这可以用于清空索引或重置索引到初始状态。

 

24. **获取字段统计信息**:

    ```

    GET /my_index/_field_stats

    ```

    这个命令提供了索引中所有字段的统计信息,包括字段的总数、最大值、最小值等。

 

25. **执行搜索并返回特定字段**:

    ```

    GET /my_index/_search

    {

      "_source": ["field1", "field2"],

      "query": {

        "match": {

          "field1": "value1"

        }

      }

    }

    ```

    这个命令在搜索时只返回指定的字段,减少网络传输的数据量。

 

26. **执行分页查询**:

    ```

    GET /my_index/_search

    {

      "from": 10,

      "size": 10,

      "query": {

        "match_all": {}

      }

    }

    ```

    这个命令通过设置`from`和`size`参数来实现分页查询,`from`表示从结果的哪一条开始返回,`size`表示返回多少条结果。

 

27. **获取集群状态**:

    ```

    GET /_cluster/state

    ```

    这个命令提供了集群的当前状态,包括哪些节点是主节点,哪些是副本节点,以及当前正在进行的重新平衡操作。

 

28. **重新路由分配**:

    ```

    POST /_cluster/reroute

    {

      "commands": [

        { "allocate" : { "index" : "my_index", "shard" : 0, "node" : "node_name" } }

      ]

    }

    ```

    这个命令允许你手动重新路由分配分片到集群中的特定节点,用于故障恢复或负载均衡。

 

29. **获取集群中的节点信息**:

    ```

    GET /_nodes

    ```

    这个命令提供了集群中所有节点的详细信息,包括节点名称、IP地址、运行的Elasticsearch版本等。

 

30. **监控Elasticsearch性能**:

    ```

    GET /_nodes/stats

    ```

    这个命令提供了集群中每个节点的性能统计信息,包括CPU使用率、内存使用情况、磁盘I/O等。

 

这些命令为Elasticsearch的高级用户提供了强大的工具,以便更深入地管理和优化他们的搜索和存储环境。在使用这些命令时,应该根据实际情况和需求进行调整,以确保集群的健康和性能。同时,对于涉及数据修改的操作,应该谨慎执行,并确保有适当的备份和恢复策略。

 

相关推荐

  1. 12 Es命令简介

    2024-04-20 11:04:08       32 阅读
  2. <span style='color:red;'>ES</span><span style='color:red;'>11</span>-<span style='color:red;'>12</span>

    ES11-12

    2024-04-20 11:04:08      42 阅读
  3. 第20 Vue命令简介

    2024-04-20 11:04:08       27 阅读
  4. 11 Es集群环境安装的步骤

    2024-04-20 11:04:08       32 阅读
  5. RK356x U-Boot研究所(命令)3.12 mtd命令的用法

    2024-04-20 11:04:08       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 11:04:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 11:04:08       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 11:04:08       82 阅读
  4. Python语言-面向对象

    2024-04-20 11:04:08       91 阅读

热门阅读

  1. ES链接报connection reset by peer

    2024-04-20 11:04:08       28 阅读
  2. 光流法跟踪

    2024-04-20 11:04:08       33 阅读
  3. 李沐54_循环神经网络RNN——自学笔记

    2024-04-20 11:04:08       35 阅读
  4. git常用命令汇总

    2024-04-20 11:04:08       35 阅读
  5. XiaodiSec day007 Learn Note 小迪渗透学习笔记

    2024-04-20 11:04:08       32 阅读
  6. ES6 常用语法

    2024-04-20 11:04:08       34 阅读
  7. iOS 控制每个vc横竖屏

    2024-04-20 11:04:08       42 阅读
  8. Rust 语言使用 SQLite 数据库

    2024-04-20 11:04:08       40 阅读
  9. PgSQL的登录相关(Ubuntu22.04)

    2024-04-20 11:04:08       34 阅读
  10. es6 常用的object归纳总结和部分数组纠结总结

    2024-04-20 11:04:08       31 阅读
  11. Ribbon负载均衡

    2024-04-20 11:04:08       35 阅读
  12. 【Node.js】child_process 子进程

    2024-04-20 11:04:08       36 阅读
  13. tensorflow list_files需要注意的点

    2024-04-20 11:04:08       39 阅读
  14. Create2024百度AI开发者大会记录

    2024-04-20 11:04:08       34 阅读