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

 

 

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值