任务

    /tasks 路由提供有关异步操作进度的信息。

    任务对象

    {
      "uid": 4,
      "batchUids": 0,
      "indexUid":"movie",
      "status": "failed",
      "type": "indexDeletion",
      "canceledBy": null,
      "details": {
        "deletedDocuments": 0
      },
      "error": {
        "message": "Index `movie` not found.",
        "code": "index_not_found",
        "type": "invalid_request",
        "link": "https://docs.meilisearch.com/errors#index_not_found"
      },
      "duration": "PT0.001192S",
      "enqueuedAt": "2022-08-04T12:28:15.159167Z",
      "startedAt": "2022-08-04T12:28:15.161996Z",
      "finishedAt": "2022-08-04T12:28:15.163188Z"
    }
    

    uid

    类型:整数
    描述:任务的唯一顺序标识符。

    注意

    任务 uid 在实例中的所有索引中递增。

    batchUid

    类型:整数
    描述:此任务所属批次的唯一顺序标识符。

    注意

    批次 uid 在实例中的所有索引中递增。

    indexUid

    类型:字符串
    描述:目标索引的唯一标识符

    注意

    对于全局任务,此值始终为 null

    status

    类型:字符串
    描述:任务的状态。可能的值为 enqueuedprocessingsucceededfailedcanceled

    type

    类型:字符串
    描述:任务执行的操作类型。可能的值为 indexCreationindexUpdateindexDeletionindexSwapdocumentAdditionOrUpdatedocumentDeletionsettingsUpdatedumpCreationtaskCancelationtaskDeletionsnapshotCreation

    canceledBy

    类型:整数
    描述:如果任务已取消,则 canceledBy 包含 taskCancelation 任务的 uid。如果任务未取消,则 canceledBy 始终为 null

    details

    类型:对象
    描述:有关任务负载的详细信息。此对象的内容取决于任务的 type

    documentAdditionOrUpdate

    名称描述
    receivedDocuments收到的文档数量
    indexedDocuments已索引的文档数量。当任务状态为 enqueuedprocessing 时为 null

    documentDeletion

    名称描述
    providedIds排队等待删除的文档数量
    originalFilter用于删除文档的筛选器。如果未指定,则为 null
    deletedDocuments已删除的文档数量。当任务状态为 enqueuedprocessing 时为 null

    indexCreation

    名称描述
    primaryKey索引创建期间提供的 primaryKey 字段的值。如果未指定,则为 null

    indexUpdate

    名称描述
    primaryKey索引更新期间提供的 primaryKey 字段的值。如果未指定,则为 null

    indexDeletion

    名称描述
    deletedDocuments已删除的文档数量。这应等于已删除索引中的文档总数。当任务状态为 enqueuedprocessing 时为 null

    indexSwap

    名称描述
    swaps包含 indexSwap 任务负载的对象

    settingsUpdate

    名称描述
    rankingRules排名规则列表
    filterableAttributes可筛选属性列表
    distinctAttribute不同的属性
    searchableAttributes可搜索属性列表
    displayedAttributes显示的属性列表
    sortableAttributes可排序属性列表
    stopWords停用词列表
    synonyms同义词列表
    typoTolerancetypoTolerance 对象
    paginationpagination 对象
    facetingfaceting 对象

    dumpCreation

    名称描述
    dumpUid生成的转储的 uid。这也是生成的转储文件的名称。当任务状态为 enqueuedprocessingcanceledfailed 时为 null

    taskCancelation

    名称描述
    matchedTasks匹配的任务数。如果用于请求的 API 密钥无权访问索引,则与该索引相关的任务将不包含在 matchedTasks
    canceledTasks成功取消的任务数。如果任务取消失败,则此值为 0。当任务状态为 enqueuedprocessing 时为 null
    originalFilter取消任务请求中使用的筛选器
    注意

    任务取消可能成功,但仍具有 canceledTasks: 0。当 matchedTasks 匹配已完成的任务(succeededfailedcanceled)时,会发生这种情况。

    taskDeletion

    名称描述
    matchedTasks匹配的任务数。如果用于请求的 API 密钥无权访问索引,则与该索引相关的任务将不包含在 matchedTasks
    deletedTasks成功删除的任务数。如果任务删除失败,则此值为 0。当任务状态为 enqueuedprocessing 时为 null
    originalFilter删除任务请求中使用的筛选器
    注意

    任务删除可能成功,但仍具有 deletedTasks: 0。当 matchedTasks 匹配 enqueuedprocessing 任务时,会发生这种情况。

    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 的日期和时间,无论是 failedsucceeded 还是 canceled,均以 RFC 3339 格式表示

    汇总的任务对象

    当 API 请求触发异步过程时,Meilisearch 返回一个汇总的任务对象。此对象包含以下字段

    字段类型描述
    taskUid整数唯一顺序标识符
    indexUid字符串唯一索引标识符(对于全局任务始终为 null
    status字符串任务的状态。值为 enqueued
    type字符串任务类型
    enqueuedAt字符串表示任务已 enqueued 的日期和时间,采用RFC 3339 格式

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    获取任务

    GET/tasks

    列出所有任务(全局),与索引无关。task 对象包含在 results 数组中。

    任务始终按 uid 的降序返回。这意味着默认情况下,最近创建的 task 对象会首先出现

    任务结果是分页的,并且可以筛选

    查询参数

    查询参数默认值描述
    uids*(所有 uid)uid 筛选任务。用逗号 (,) 分隔多个任务 uid
    batchUids*(所有批次 uid)batchUid 筛选任务。用逗号 (,) 分隔多个 batchUids
    statuses*(所有状态)status 筛选任务。用逗号 (,) 分隔多个任务 statuses
    types*(所有类型)type 筛选任务。用逗号 (,) 分隔多个任务 types
    indexUids*(所有索引)indexUid 筛选任务。用逗号 (,) 分隔多个任务 indexUids。区分大小写
    limit20要返回的任务数
    from上次创建的任务的 uid返回的第一个任务的 uid
    reversefalse如果为 true,则按相反的顺序返回结果,从最旧到最新
    canceledBy不适用按其 canceledBy 字段筛选任务。用逗号 (,) 分隔多个任务 uid
    beforeEnqueuedAt*(所有任务)按其 enqueuedAt 字段筛选任务
    beforeStartedAt*(所有任务)根据 startedAt 字段筛选任务
    beforeFinishedAt*(所有任务)根据 finishedAt 字段筛选任务
    afterEnqueuedAt*(所有任务)按其 enqueuedAt 字段筛选任务
    afterStartedAt*(所有任务)根据 startedAt 字段筛选任务
    afterFinishedAt*(所有任务)根据 finishedAt 字段筛选任务

    响应

    名称类型描述
    结果数组一个 任务对象 数组
    总数整数匹配筛选条件或查询的任务总数
    limit整数返回的任务数量
    from整数返回的第一个任务的 uid
    下一个整数传递给 from 的值,用于查看下一“页”结果。当 next 的值为 null 时,表示没有更多任务可查看

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/tasks'

    响应: 200 Ok

    {
      "results":[
        {
          "uid":1,
          "indexUid":"movies_reviews",
          "status":"failed",
          "type":"documentAdditionOrUpdate",
          "canceledBy": null,
          "details":{
            "receivedDocuments":100,
            "indexedDocuments":0
          },
          "error": null,
          "duration":null,
          "enqueuedAt":"2021-08-12T10:00:00.000000Z",
          "startedAt":null,
          "finishedAt":null
        },
        {
          "uid":0,
          "indexUid":"movies",
          "status":"succeeded",
          "type":"documentAdditionOrUpdate",
          "canceledBy": null,
          "details":{
            "receivedDocuments":100,
            "indexedDocuments":100
          },
          "error": null,
          "duration":"PT16S",
          "enqueuedAt":"2021-08-11T09:25:53.000000Z",
          "startedAt":"2021-08-11T10:03:00.000000Z",
          "finishedAt":"2021-08-11T10:03:16.000000Z"
        }
      ],
      "total": 50,
      "limit": 20,
      "from": 1,
      "next":null
    }
    

    获取单个任务

    GET/tasks/{task_uid}

    获取单个任务。

    注意

    如果您尝试检索已删除的任务,Meilisearch 将返回一个 task_not_found 错误。

    路径参数

    名称类型描述
    task_uid *字符串请求任务的 uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/tasks/1'

    响应: 200 Ok

    {
      "uid":1,
      "indexUid":"movies",
      "status":"succeeded",
      "type":"settingsUpdate",
      "canceledBy": null,
      "details":{
        "rankingRules":[
          "typo",
          "ranking:desc",
          "words",
          "proximity",
          "attribute",
          "exactness"
        ]
      },
      "error": null,
      "duration":"PT1S",
      "enqueuedAt":"2021-08-10T14:29:17.000000Z",
      "startedAt":"2021-08-10T14:29:18.000000Z",
      "finishedAt":"2021-08-10T14:29:19.000000Z"
    }
    

    取消任务

    POST/tasks/cancel?{query_parameter}

    根据任务的 uidstatustypeindexUid 或它们入队 (enqueuedAt) 或处理 (startedAt) 的日期,取消任意数量的 enqueuedprocessing 任务。

    任务取消是一项原子事务:要么所有任务都成功取消,要么都不取消

    警告

    为防止用户意外取消所有入队和处理中的任务,如果此路由在没有任何筛选条件 (POST /tasks/cancel) 的情况下使用,Meilisearch 将抛出 missing_task_filters 错误。

    您知道吗?

    您也可以取消 taskCancelation 类型的任务,只要它们处于 enqueuedprocessing 状态。这是可能的,因为 taskCancelation 类型的任务是按相反的顺序处理的,因此您入队的最后一个任务将首先被处理。

    查询参数

    需要一个有效的 uidsstatusestypesindexUids 或日期 (beforeXAtafterXAt) 参数。

    查询参数描述
    uids根据 uid 取消任务。用逗号 (,) 分隔多个 uids。使用 uids=* 表示所有 uids
    statuses根据 status 取消任务。用逗号 (,) 分隔多个 statuses。使用 statuses=* 表示所有 statuses
    types根据 type 取消任务。用逗号 (,) 分隔多个 types。使用 types=* 表示所有 types
    indexUids根据 indexUid 取消任务。用逗号 (,) 分隔多个 uids。使用 indexUids=* 表示所有 indexUids。区分大小写
    beforeEnqueuedAt取消在指定 enqueuedAt 日期之前的任务。使用 beforeEnqueuedAt=* 取消所有任务
    beforeStartedAt取消在指定 startedAt 日期之前的任务。使用 beforeStartedAt=* 取消所有任务
    afterEnqueuedAt取消在指定 enqueuedAt 日期之后的任务。使用 afterEnqueuedAt=* 取消所有任务
    afterStartedAt取消在指定 startedAt 日期之后的任务。使用 afterStartedAt=* 取消所有任务
    注意

    日期过滤器等效于 <> 操作。目前,无法使用日期过滤器执行 操作。

    要了解有关筛选任务的更多信息,请参阅我们的专用指南。

    示例

    curl \
      -X POST 'https://127.0.0.1:7700/tasks/cancel?uids=1,2'

    响应: 200 Ok

    {
      "taskUid": 3,
      "indexUid": null,
      "status": "enqueued",
      "type": "taskCancelation",
      "enqueuedAt": "2021-08-12T10:00:00.000000Z"
    }
    
    注意

    由于 taskCancelation 是一个 全局任务,它的 indexUid 始终为 null

    您可以使用此 taskUid 来获取有关任务状态的更多详细信息。

    取消所有任务

    您可以使用以下筛选器取消所有 processingenqueued 任务

    POST/tasks/cancel?statuses=processing,enqueued

    使用的 API 密钥必须有权访问所有索引 ("indexes": [*]) 和 task.cancel 操作。

    删除任务

    DELETE/tasks?{query_parameter}

    根据 uidstatustypeindexUidcanceledBy 或日期删除已完成(succeededfailedcanceled)的任务。任务删除是一项原子事务:要么所有任务都成功删除,要么都不删除

    警告

    为防止用户意外删除整个任务历史记录,如果此路由在没有任何筛选条件 (DELETE /tasks) 的情况下使用,Meilisearch 将抛出 missing_task_filters 错误。

    查询参数

    需要一个有效的 uidsstatusestypesindexUidscanceledBy 或日期 (beforeXAtafterXAt) 参数。

    查询参数描述
    uids根据 uid 删除任务。用逗号 (,) 分隔多个 uids。使用 uids=* 表示所有 uids
    statuses根据 status 删除任务。用逗号 (,) 分隔多个 statuses。使用 statuses=* 表示所有 statuses
    types根据 type 删除任务。用逗号 (,) 分隔多个 types。使用 types=* 表示所有 types
    indexUids根据 indexUid 删除任务。用逗号 (,) 分隔多个 uids。使用 indexUids=* 表示所有 indexUids。区分大小写
    canceledBy根据 canceledBy 字段删除任务
    beforeEnqueuedAt删除在指定 enqueuedAt 日期之前的任务。使用 beforeEnqueuedAt=* 删除所有任务
    beforeStartedAt删除在指定 startedAt 日期之前的任务。使用 beforeStartedAt=* 删除所有任务
    beforeFinishedAt删除在指定 finishedAt 日期之前的任务。使用 beforeFinishedAt=* 删除所有任务
    afterEnqueuedAt删除在指定 enqueuedAt 日期之后的任务。使用 afterEnqueuedAt=* 删除所有任务
    afterStartedAt删除在指定 startedAt 日期之后的任务。使用 afterStartedAt=* 删除所有任务
    afterFinishedAt删除在指定 finishedAt 日期之后的任务。使用 afterFinishedAt=* 删除所有任务
    注意

    日期过滤器等效于 <> 操作。目前,无法使用日期过滤器执行 操作。

    要了解有关筛选任务的更多信息,请参阅我们的专用指南。

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/tasks?uids=1,2'

    响应: 200 Ok

    {
      "taskUid": 3,
      "indexUid": null,
      "status": "enqueued",
      "type": "taskDeletion",
      "enqueuedAt": "2021-08-12T10:00:00.000000Z"
    }
    
    注意

    由于 taskDeletion 是一个 全局任务,它的 indexUid 始终为 null

    您可以使用此 taskUid 来获取有关任务状态的更多详细信息。

    删除所有任务

    您可以使用以下筛选器删除所有已完成的任务

    DELETE/tasks?statuses=failed,canceled,succeeded

    使用的 API 密钥必须有权访问所有索引 ("indexes": [*]) 和 task.delete 操作。