12篇 Es命令简介

news/2024/9/23 13:16:00/

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

 


http://www.ppmy.cn/news/1426095.html

相关文章

Scrapy设置随机User-Agent

大多数情况下,网站都会根据我们的请求头信息来区分你是不是一个爬虫程序,如果一旦识别出这是一个爬虫程序,很容易就会拒绝我们的请求,因此我们需要给我们的爬虫手动添加请求头信息,来模拟浏览器的行为,但是…

【学习】linux实用命令

LINUX命令 普通用户查询系统信息 命令 : [wlm]$ cat /ect/os-release NAME "Kylin" VERSION ""功能: 这个输出会告诉你正在使用的操作系统的名称(NAME)、版本(VERSION 或 VERSION_ID&#xf…

用户行为分析模型实践(四)—— 留存分析模型

作者:vivo 互联网大数据团队- Wu Yonggang、Li Xiong 本文是vivo互联网大数据团队《用户行为分析模型实践》系列文章第4篇 -留存分析模型。 本文详细介绍了留存分析模型的概念及基本原理,并阐述了其在产品中具体实现。针对在实际使用过程问题&#xff0…

基于深度学习网络的鞋子种类识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 load gnet.mat % 使用训练好的网络对验证数据进行分类预测 [Predicted_Label, Probability] c…

单链表逆置(头插法,递归,数据结构栈的应用)

链表逆置就是把最后一个数据提到最前面,倒数第二个放到第二个……依次类推,直到第一个到最后一个。 由于链表没有下标,所以不能借助下标来实行数据的逆置,要靠空间的转移来完成链表的逆置,这里采用没有头节点的链表来实…

第四届大数据工程与教育国际会议(BDEE 2024)即将召开!

第四届大数据工程与教育国际会议(BDEE 2024)将于2024年8月9-11日在泰国清迈举行。数据驱动教育变革,智慧点亮未来课堂!BDEE 2024是专注于大数据工程与教育领域的重要学术会议,全球大数据与教育精英齐聚,在数…

Electron 30.0.0 发布,升级 Node 和 V8 引擎

近日,Electron 30.0.0 正式发布!你可以通过 npm install electronlatest 进行安装,或者从 Electron 的发布网站下载,继续阅读了解此版本的详细信息。 🔥 主要更新 Windows 上支持 ASAR 完整性融合。如果未正确配置&am…

Python的parse.quote_plus作用

parse.quote_plus 是 Python 标准库 urllib.parse 模块中的一个函数。它用于对字符串进行编码,以便将其作为 URL 的一部分安全地传输。 这个函数主要用于将字符串中的特殊字符转换为 URL 编码的形式。例如,空格会被转换为 %20,加号 () 会被转…