当前位置: 首页 > article >正文

【Elasticsearch】_reindex api请求

 在Elasticsearch中,你可以使用 `_tasks` API 来检查 `_reindex` 任务的状态。当你发起一个 `_reindex` 请求时,Elasticsearch 会返回一个任务 ID,你可以使用这个任务 ID 来查询任务的详细状态。

 

以下是如何检查 `_reindex` 任务状态的步骤:

 

### 1. 获取任务 ID

 

首先,你需要获取 `_reindex` 任务的 ID。当你发送 `_reindex` 请求时,Elasticsearch 会返回一个响应,其中包含任务 ID。例如:

 

```json

POST _reindex

{

  "source": {

    "index": "kibana_sample_data_logs",

    "size": 50

  },

  "dest": {

    "index": "lang-test",

    "pipeline": "my-lang-pipeline"

  }

}

```

 

响应可能类似于:

 

```json

{

  "took": 123,

  "tasks": "node_id:task_id",

  "total": 50,

  "created": 50,

  "deleted": 0,

  "batches": 1,

  "version_conflicts": 0,

  "noops": 0,

  "retries": {

    "bulk": 0,

    "search": 0

  },

  "throttled_millis": 0,

  "requests_per_second": -1.0,

  "throttled_until_millis": 0,

  "failures": []

}

```

 

在这个响应中,`"tasks": "node_id:task_id"` 是任务的唯一标识符。

 

### 2. 使用 `_tasks` API 查询任务状态

 

你可以使用 `_tasks` API 来查询任务的详细状态。假设任务 ID 是 `node_id:task_id`,你可以发送以下请求来获取任务状态:

 

```json

GET _tasks/node_id:task_id

```

 

这将返回任务的详细信息,包括任务的状态、进度和任何潜在的错误信息。例如:

 

```json

{

  "completed": true,

  "task": {

    "node": "node_id",

    "id": 123456789,

    "type": "transport",

    "action": "indices:data/write/reindex",

    "status": {

      "total": 50,

      "updated": 50,

      "created": 50,

      "deleted": 0,

      "batches": 1,

      "version_conflicts": 0,

      "noops": 0,

      "retries": {

        "bulk": 0,

        "search": 0

      },

      "throttled_millis": 0,

      "requests_per_second": -1.0,

      "throttled_until_millis": 0

    },

    "description": "reindex from [kibana_sample_data_logs] to [lang-test]",

    "start_time_in_millis": 1642956000000,

    "running_time_in_nanos": 123456789,

    "cancellable": true,

    "headers": {}

  }

}

```

 

### 3. 检查任务状态

 

在返回的 JSON 中,你可以查看以下字段来了解任务的状态:

 

- `completed`: 任务是否已完成。

- `status`: 任务的详细状态,包括已处理的文档数量、创建的文档数量、删除的文档数量等。

- `running_time_in_nanos`: 任务运行的时间(纳秒)。

- `cancellable`: 任务是否可以取消。

 

通过这些信息,你可以了解 `_reindex` 任务的进展和结果。

 

### 4. 取消任务(可选)

 

如果需要取消正在进行的 `_reindex` 任务,你可以使用 `_tasks` API 的 `cancel` 功能。例如:

 

```json

POST _tasks/node_id:task_id/_cancel

```

 

这将尝试取消指定的任务。请注意,取消操作可能不会立即生效,具体取决于任务的当前状态和进度。


http://www.kler.cn/a/522100.html

相关文章:

  • 正则表达式入门
  • Autogen_core 测试代码:test_cache_store.py
  • “AI视频智能分析系统:让每一帧视频都充满智慧
  • 数据分析系列--①RapidMiner软件安装
  • AI软件外包需要注意什么 外包开发AI软件的关键因素是什么 如何选择AI外包开发语言
  • CRM 微服务
  • 鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)
  • 蓝桥杯真题 - 景区导游 - 题解
  • 新中地GIS开发特训营:引领地理空间技术革命
  • golang通过AutoMigrate方法自动创建table详解
  • 【蓝桥杯】43692.青蛙跳杯子
  • 【深度学习基础】多层感知机 | 实战Kaggle比赛:预测房价
  • 【JavaScript笔记】01- 原型及原型链(面试高频内容)
  • cherry USB 键盘分析
  • 算法题(49):反转链表II
  • Python3 OS模块中的文件/目录方法说明十二
  • DeepSeek R1:中国AI黑马的崛起与挑战
  • AI Agent的安全实践:权限控制与数据保护
  • 1. Java-MarkDown文件创建-工具类
  • 系统思维和升维思维以及它们对项目经理重要性
  • 定时任务Spring Task双向数据传输WebSocket
  • 第05章 14 绘制人脸部的PolyData并使用小圆锥体来展现法线
  • Go反射指南
  • 爱的魔力转圈圈,基于carsim与simulink模拟仰望u8原地调头
  • DeepSeek-R1 是否才是 “Open” AI?
  • YOLOv11改进,YOLOv11检测头融合DynamicHead,并添加小目标检测层(四头检测),适合目标检测、分割等任务