/batches 路由提供关于异步操作批处理进度的信息。

批处理对象

{
  "uid": 0,
  "progress": {
    "steps": [
      { 
        "currentStep": "extracting words",
        "finished": 2,
        "total": 9,
      },
      {
        "currentStep": "document",
        "finished": 30546,
        "total": 31944,
      }
    ],
    "percentage": 32.8471
  },
  "details": {
    "receivedDocuments": 6,
    "indexedDocuments": 6
  },
  "stats": {
    "totalNbTasks": 1,
    "status": {
      "succeeded": 1
    },
    "types": {
      "documentAdditionOrUpdate": 1
    },
    "indexUids": {
      "INDEX_NAME": 1
    }, 
    "progressTrace": {  },
    "writeChannelCongestion": {  },
    "internalDatabaseSizes": {  }
  },
  "duration": "PT0.250518S",
  "startedAt": "2024-12-10T15:20:30.18182Z",
  "finishedAt": "2024-12-10T15:20:30.432338Z",
  "batchStrategy": "batched all enqueued tasks"
}

uid

类型: 整数
描述: 批处理的唯一顺序标识符。从 0 开始,每个新批处理增加 1。

详情

类型: 对象
描述: 关于批处理中任务类型的基础信息。有关所有可能值的完整列表,请参阅任务对象参考

进度

类型: 对象
描述: 包含两个字段的对象:steps(步骤)和 percentage(百分比)。一旦 Meilisearch 完全处理完批处理,其 progress 将被设置为 null

步骤

关于 Meilisearch 在此批处理中正在执行的当前操作的信息。一个步骤可能包含多个子步骤。

名称描述
当前步骤描述操作的字符串
总计步骤中的操作总数
已完成Meilisearch 已完成的操作数量

如果 Meilisearch 处理批处理的时间超出预期,请监控 steps 数组。如果 steps 数组中最后一项的 finished 字段未更新,Meilisearch 可能已卡住。

百分比

已完成操作的百分比,根据所有当前步骤和子步骤计算。该值是一个粗略估计,可能不总是反映批处理的当前状态,因为不同步骤的处理速度可能不同。

统计信息

类型: 对象
描述: 批处理中所有任务负载的详细信息。

任务总数

批处理中的任务数量。

状态

列出批处理中每个任务状态的对象。包含五个键,其值对应于具有该状态的任务数量。

类型

包含批处理中任务 types 的列表。

索引 UIDs

批处理中按受影响索引分类的任务数量列表。

进度追踪

批处理中每个操作的完整路径列表,以及人类可读格式的处理时间。

写入通道拥堵

包含索引期间计算的写入操作信息的对象。在诊断与写入速度相关的性能问题时可能有用。

内部数据库大小

每个内部数据库的大小,包括批处理后其大小的变化量。

持续时间

类型: 字符串
描述: 批处理处于 processing(处理中)状态的总耗时,采用 ISO 8601 格式。当批处理正在处理任务时,此值设置为 null

开始于

类型: 字符串
描述: 批处理开始 processing(处理)的日期和时间,采用 RFC 3339 格式。

结束于

类型: 字符串
描述: 任务完成 processing(处理)的日期和时间,无论状态是 failed(失败)、succeeded(成功)还是 canceled(取消),采用 RFC 3339 格式。

批处理策略

类型: 字符串
描述: 描述批处理创建逻辑的字符串。在诊断索引性能问题时,可能包含有用信息。

获取批处理

GET
/batches

列出所有批处理,不区分索引。批处理对象包含在 results 数组中。

批处理始终按 uid 降序返回。这意味着默认情况下,最新创建的批处理对象会首先出现

批处理结果是分页的,并且可以使用查询参数进行过滤

/batches 的一些查询参数,例如 uidsstatuses,针对的是任务而非批处理。

例如,?uids=0 返回一个包含 taskUid 等于 0 的任务的批处理,而不是 batchUid 等于 0 的批处理。

查询参数

查询参数默认值描述
uids* (所有任务 uid)选择包含具有指定 uid 的任务的批处理。多个任务 uids 用逗号 (,) 分隔。
batchUids* (所有批处理 uid)按批处理的 uid 过滤。多个批处理 uid 用逗号 (,) 分隔。
索引 UIDs* (所有索引)选择包含影响指定索引的任务的批处理。多个 indexUids 用逗号 (,) 分隔。
statuses* (所有状态)选择包含具有指定 status 的任务的批处理。多个任务 status 用逗号 (,) 分隔。
类型* (所有类型)选择包含具有指定 type 的任务的批处理。多个任务 type 用逗号 (,) 分隔。
limit20要返回的批处理数量
from最后创建的批处理的 uid返回的第一个批处理的 uid
reversefalse如果为 true,则按相反顺序返回结果,从最早到最近。
beforeEnqueuedAt* (所有任务)选择包含具有指定 enqueuedAt 字段的任务的批处理。
beforeStartedAt* (所有任务)选择包含具有指定 startedAt 字段的任务的批处理。
beforeFinishedAt* (所有任务)选择包含具有指定 finishedAt 字段的任务的批处理。
afterEnqueuedAt* (所有任务)选择包含具有指定 enqueuedAt 字段的任务的批处理。
afterStartedAt* (所有任务)选择包含具有指定 startedAt 字段的任务的批处理。
afterFinishedAt* (所有任务)选择包含具有指定 finishedAt 字段的任务的批处理。

响应

名称类型描述
results数组批处理对象的数组
总计整数匹配过滤器或查询的批处理总数
limit整数返回的批处理数量
from整数返回的第一个批处理的 uid
next整数传递给 from 的值,用于查看结果的下一“页”。当 next 的值为 null 时,没有更多任务可查看。

示例

curl \
  -X GET 'http://MEILISEARCH_URL/batches'

响应: 200 OK

{
  "results": [
    {
      "uid": 2,
      "progress": null,
      "details": {
        "stopWords": [
          "of",
          "the"
        ]
      },
      "stats": {
        "totalNbTasks": 1,
        "status": {
          "succeeded": 1
        },
        "types": {
          "settingsUpdate": 1
        },
        "indexUids": {
          "INDEX_NAME": 1
        },
        "progressTrace": {  },
        "writeChannelCongestion": {  },
        "internalDatabaseSizes": {  }
      },
      "duration": "PT0.110083S",
      "startedAt": "2024-12-10T15:49:04.995321Z",
      "finishedAt": "2024-12-10T15:49:05.105404Z",
      "batchStrategy": "batched all enqueued tasks"
    }
  ],
  "total": 3,
  "limit": 1,
  "from": 2,
  "next": 1
}

获取单个批处理

GET
/batches/{batch_uid}

获取单个批处理。

路径参数

名称类型描述
batch_uid *字符串请求批处理的uid

示例

curl \
  -X GET 'http://MEILISEARCH_URL/batches/BATCH_UID'

响应: 200 OK

{
  "uid": 1,
  "details": {
    "receivedDocuments": 1,
    "indexedDocuments": 1
  },
  "progress": null,
  "stats": {
    "totalNbTasks": 1,
    "status": {
      "succeeded": 1
    },
    "types": {
      "documentAdditionOrUpdate": 1
    },
    "indexUids": {
      "INDEX_NAME": 1
    }
  },
  "duration": "PT0.364788S",
  "startedAt": "2024-12-10T15:48:49.672141Z",
  "finishedAt": "2024-12-10T15:48:50.036929Z",
  "batchStrategy": "batched all enqueued tasks"
}