任务
/tasks
路由允许您管理和监控 Meilisearch 的异步操作。
/tasks
路由提供有关异步操作进度的信息。
任务对象
uid
类型: 整数
描述: 任务的唯一顺序标识符。
在实例中的所有索引上,任务的 uid
都会递增。
batchUid
类型: 整数
描述: 此任务所属批次的唯一顺序标识符。
在实例中的所有索引上,批次的 uid
都会递增。
indexUid
类型: 字符串
描述: 目标索引的唯一标识符
对于全局任务,此值始终为null
。
status
类型: 字符串
描述: 任务状态。可能的值包括enqueued
(已排队)、processing
(处理中)、succeeded
(成功)、failed
(失败)和canceled
(已取消)
type
类型: 字符串
描述: 任务执行的操作类型。可能的值包括indexCreation
(索引创建)、indexUpdate
(索引更新)、indexDeletion
(索引删除)、indexSwap
(索引交换)、documentAdditionOrUpdate
(文档添加或更新)、documentDeletion
(文档删除)、settingsUpdate
(设置更新)、dumpCreation
(数据转储创建)、taskCancelation
(任务取消)、taskDeletion
(任务删除)、databaseUpgrade
(数据库升级)、documentEdition
(文档编辑)和snapshotCreation
(快照创建)
canceledBy
类型: 整数
描述: 如果任务被取消,canceledBy
包含taskCancelation
任务的 uid
。如果任务未被取消,canceledBy
始终为 null
details
类型: 对象
描述: 任务负载的详细信息。此对象的内容取决于任务的 type
documentAdditionOrUpdate(文档添加或更新)
名称 | 描述 |
---|---|
receivedDocuments | 接收到的文档数量 |
indexedDocuments | 已索引的文档数量。当任务状态为enqueued (已排队)或processing (处理中)时,此值为null |
documentDeletion(文档删除)
名称 | 描述 |
---|---|
providedIds | 已排队等待删除的文档数量 |
originalFilter | 用于删除文档的过滤器。如果未指定,则为null |
deletedDocuments | 已删除的文档数量。当任务状态为enqueued (已排队)或processing (处理中)时,此值为null |
indexCreation(索引创建)
名称 | 描述 |
---|---|
primaryKey | 索引创建期间提供的 primaryKey 字段值。如果未指定,则为null |
indexUpdate(索引更新)
名称 | 描述 |
---|---|
primaryKey | 索引更新期间提供的 primaryKey 字段值。如果未指定,则为null |
indexDeletion(索引删除)
名称 | 描述 |
---|---|
deletedDocuments | 已删除的文档数量。此值应等于已删除索引中的文档总数。当任务状态为enqueued (已排队)或processing (处理中)时,此值为null |
indexSwap(索引交换)
名称 | 描述 |
---|---|
swaps | 包含indexSwap 任务负载的对象 |
settingsUpdate(设置更新)
名称 | 描述 |
---|---|
rankingRules | 排名规则列表 |
filterableAttributes | 可过滤属性列表 |
distinctAttribute | 去重属性 |
searchableAttributes | 可搜索属性列表 |
displayedAttributes | 可显示属性列表 |
sortableAttributes | 可排序属性列表 |
stopWords | 停用词列表 |
synonyms | 同义词列表 |
typoTolerance | typoTolerance 对象 |
pagination | pagination 对象 |
faceting | faceting 对象 |
dumpCreation(数据转储创建)
名称 | 描述 |
---|---|
dumpUid | 生成的数据转储的 uid 。这也是生成的数据转储文件的名称。当任务状态为enqueued (已排队)、processing (处理中)、canceled (已取消)或failed (失败)时,此值为null |
taskCancelation(任务取消)
名称 | 描述 |
---|---|
matchedTasks | 匹配到的任务数量。如果请求使用的 API 密钥无权访问某个索引,则与该索引相关的任务将不会包含在matchedTasks 中 |
canceledTasks | 成功取消的任务数量。如果任务取消失败,此值将为0 。当任务状态为enqueued (已排队)或processing (处理中)时,此值为null |
originalFilter | 取消任务请求中使用的过滤器 |
任务取消可能成功,但canceledTasks
仍为0
。这发生在matchedTasks
匹配到已完成的任务(succeeded
(成功)、failed
(失败)或canceled
(已取消))时。
taskDeletion(任务删除)
名称 | 描述 |
---|---|
matchedTasks | 匹配到的任务数量。如果请求使用的 API 密钥无权访问某个索引,则与该索引相关的任务将不会包含在matchedTasks 中 |
deletedTasks | 成功删除的任务数量。如果任务删除失败,此值将为0 。当任务状态为enqueued (已排队)或processing (处理中)时,此值为null |
originalFilter | 删除任务请求中使用的过滤器 |
任务删除可能成功,但deletedTasks
仍为0
。这发生在matchedTasks
匹配到enqueued
(已排队)或processing
(处理中)任务时。
snapshotCreation(快照创建)
对于snapshotCreation
任务,details
对象被设置为null
。
error
类型: 对象
描述: 如果任务的状态为failed
(失败),则此对象包含错误定义。否则,设置为null
名称 | 描述 |
---|---|
message | 易于理解的错误描述 |
code | 错误代码 |
type | 错误类型 |
link | 文档相关部分的链接 |
duration
类型: 字符串
描述: 任务在processing
(处理中)状态下花费的总时间,采用ISO 8601格式
enqueuedAt
类型: 字符串
描述: 任务首次enqueued
(已排队)的日期和时间,采用RFC 3339格式
startedAt
类型: 字符串
描述: 任务开始processing
(处理中)的日期和时间,采用RFC 3339格式
finishedAt
类型: 字符串
描述: 任务完成processing
(处理中),无论是failed
(失败)、succeeded
(成功)还是canceled
(已取消)的日期和时间,采用RFC 3339格式
摘要任务对象
当 API 请求触发异步进程时,Meilisearch 返回一个摘要任务对象。此对象包含以下字段
字段 | 类型 | 描述 |
---|---|---|
taskUid | 整数 | 唯一顺序标识符 |
indexUid | 字符串 | 唯一索引标识符(对于全局任务始终为null ) |
status | 字符串 | 任务状态。值为enqueued (已排队) |
type | 字符串 | 任务类型 |
enqueuedAt | 字符串 | 表示任务在RFC 3339格式下enqueued (已排队)的日期和时间 |
您可以使用此taskUid
获取任务状态的更多详细信息。
获取任务
全局列出所有任务,无论索引。task
对象包含在results
数组中。
任务始终按uid
降序返回。这意味着默认情况下,**最近创建的task
对象会首先出现**。
查询参数
查询参数 | 默认值 | 描述 |
---|---|---|
uids | * (所有 uid) | 根据任务的uid 过滤任务。使用逗号 (, ) 分隔多个任务uid |
batchUids | * (所有批次 uid) | 根据任务的batchUid 过滤任务。使用逗号 (, ) 分隔多个batchUid |
statuses | * (所有状态) | 根据任务的status 过滤任务。使用逗号 (, ) 分隔多个任务status |
types | * (所有类型) | 根据任务的type 过滤任务。使用逗号 (, ) 分隔多个任务type |
indexUids | * (所有索引) | 根据任务的indexUid 过滤任务。使用逗号 (, ) 分隔多个任务indexUid 。区分大小写 |
limit | 20 | 要返回的任务数量 |
from | 最后创建任务的uid | 返回的第一个任务的uid |
reverse | false | 如果为true ,则按倒序返回结果,从最早到最近 |
canceledBy | 不适用 | 根据任务的canceledBy 字段过滤任务。使用逗号 (, ) 分隔多个任务uid |
beforeEnqueuedAt | * (所有任务) | 根据任务的enqueuedAt 字段过滤任务 |
beforeStartedAt | * (所有任务) | 根据任务的startedAt 字段过滤任务 |
beforeFinishedAt | * (所有任务) | 根据任务的finishedAt 字段过滤任务 |
afterEnqueuedAt | * (所有任务) | 根据任务的enqueuedAt 字段过滤任务 |
afterStartedAt | * (所有任务) | 根据任务的startedAt 字段过滤任务 |
afterFinishedAt | * (所有任务) | 根据任务的finishedAt 字段过滤任务 |
响应
名称 | 类型 | 描述 |
---|---|---|
results | 数组 | 任务对象数组 |
total | 整数 | 匹配过滤器或查询的任务总数 |
limit | 整数 | 返回的任务数量 |
from | 整数 | 返回的第一个任务的uid |
next | 整数 | 传递给from 的值,用于查看结果的下一“页”。当next 的值为null 时,表示没有更多任务可供查看 |
示例
响应:200 Ok
获取单个任务
获取单个任务。
如果您尝试检索已删除的任务,Meilisearch 将返回task_not_found
错误。
路径参数
名称 | 类型 | 描述 |
---|---|---|
task_uid * | 字符串 | 请求任务的uid |
示例
响应:200 Ok
取消任务
根据任务的uid
、status
(状态)、type
(类型)、indexUid
(索引uid),或它们排队(enqueuedAt
)或处理(startedAt
)的日期,取消任意数量的enqueued
(已排队)或processing
(处理中)任务。
任务取消是一个原子事务:**要么所有任务都成功取消,要么一个也没有**。
为防止用户意外取消所有已排队和处理中的任务,如果此路由未带任何过滤器使用(POST /tasks/cancel
),Meilisearch 将抛出missing_task_filters
错误。
只要taskCancelation
类型的任务处于enqueued
(已排队)或processing
(处理中)状态,您也可以取消它们。这是因为taskCancelation
类型的任务按倒序处理,因此您最后排队的任务将首先被处理。
查询参数
需要有效的uids
、statuses
、types
、indexUids
或日期(beforeXAt
或afterXAt
)参数。
查询参数 | 描述 |
---|---|
uids | 根据uid 取消任务。使用逗号 (, ) 分隔多个uid 。使用uids=* 表示所有uid |
statuses | 根据status 取消任务。使用逗号 (, ) 分隔多个status 。使用statuses=* 表示所有status |
types | 根据type 取消任务。使用逗号 (, ) 分隔多个type 。使用types=* 表示所有type |
indexUids | 根据indexUid 取消任务。使用逗号 (, ) 分隔多个uid 。使用indexUids=* 表示所有indexUid 。区分大小写 |
beforeEnqueuedAt | 取消指定enqueuedAt 日期**之前**的任务。使用beforeEnqueuedAt=* 取消所有任务 |
beforeStartedAt | 取消指定startedAt 日期**之前**的任务。使用beforeStartedAt=* 取消所有任务 |
afterEnqueuedAt | 取消指定enqueuedAt 日期**之后**的任务。使用afterEnqueuedAt=* 取消所有任务 |
afterStartedAt | 取消指定startedAt 日期**之后**的任务。使用afterStartedAt=* 取消所有任务 |
日期过滤器等同于<
或>
操作。目前,无法使用日期过滤器执行≤
或≥
操作。
示例
响应:200 Ok
由于taskCancelation
是全局任务,其indexUid
始终为null
。
您可以使用此taskUid
获取任务状态的更多详细信息。
取消所有任务
您可以使用以下过滤器取消所有processing
(处理中)和enqueued
(已排队)任务
使用的 API 密钥必须有权访问所有索引("indexes": [*]
)和task.cancel
操作。
删除任务
根据uid
、status
(状态)、type
(类型)、indexUid
(索引uid)、canceledBy
或日期,删除已完成(succeeded
(成功)、failed
(失败)或canceled
(已取消))的任务。任务删除是一个原子事务:**要么所有任务都成功删除,要么一个也没有**。
为防止用户意外删除所有任务历史记录,如果此路由未带任何过滤器使用(DELETE /tasks
),Meilisearch 将抛出missing_task_filters
错误。
查询参数
需要有效的uids
、statuses
、types
、indexUids
、canceledBy
或日期(beforeXAt
或afterXAt
)参数。
查询参数 | 描述 |
---|---|
uids | 根据uid 删除任务。使用逗号 (, ) 分隔多个uid 。使用uids=* 表示所有uid |
statuses | 根据status 删除任务。使用逗号 (, ) 分隔多个status 。使用statuses=* 表示所有status |
types | 根据type 删除任务。使用逗号 (, ) 分隔多个type 。使用types=* 表示所有type |
indexUids | 根据indexUid 删除任务。使用逗号 (, ) 分隔多个uid 。使用indexUids=* 表示所有indexUid 。区分大小写 |
canceledBy | 根据canceledBy 字段删除任务 |
beforeEnqueuedAt | 删除指定enqueuedAt 日期**之前**的任务。使用beforeEnqueuedAt=* 删除所有任务 |
beforeStartedAt | 删除指定startedAt 日期**之前**的任务。使用beforeStartedAt=* 删除所有任务 |
beforeFinishedAt | 删除指定finishedAt 日期**之前**的任务。使用beforeFinishedAt=* 删除所有任务 |
afterEnqueuedAt | 删除指定enqueuedAt 日期**之后**的任务。使用afterEnqueuedAt=* 删除所有任务 |
afterStartedAt | 删除指定startedAt 日期**之后**的任务。使用afterStartedAt=* 删除所有任务 |
afterFinishedAt | 删除指定finishedAt 日期**之后**的任务。使用afterFinishedAt=* 删除所有任务 |
日期过滤器等同于<
或>
操作。目前,无法使用日期过滤器执行≤
或≥
操作。
示例
响应:200 Ok
由于taskDeletion
是全局任务,其indexUid
始终为null
。
您可以使用此taskUid
获取任务状态的更多详细信息。
删除所有任务
您可以使用以下过滤器删除所有已完成的任务
使用的 API 密钥必须有权访问所有索引("indexes": [*]
)和task.delete
操作。