任務

    /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 的日期和時間,無論是 failedsucceededcanceled,都以 RFC 3339 格式表示

    摘要任務物件

    當 API 請求觸發非同步處理時,Meilisearch 會傳回摘要任務物件。此物件包含以下欄位

    欄位類型描述
    taskUid整數唯一循序識別符
    indexUid字串唯一索引識別符(對於全域任務,始終為 null
    status字串任務的狀態。值為 enqueued
    type字串任務類型
    enqueuedAt字串表示任務 enqueued 的日期和時間,以 RFC 3339 格式表示

    您可以使用此 taskUid 來取得有關任務狀態的更多詳細資訊。

    取得任務

    GET/tasks

    列出所有全域任務,無論索引為何。task 物件包含在 results 陣列中。

    任務始終以 uid 的遞減順序傳回。這表示依預設,最近建立的 task 物件會先顯示

    任務結果會分頁,並且可以篩選

    查詢參數

    查詢參數預設值描述
    uids* (所有 uid)依其 uid 篩選任務。用逗號 (,) 分隔多個任務 uids
    batchUids* (所有批次 uid)依其 batchUid 篩選任務。用逗號 (,) 分隔多個 batchUids
    statuses* (所有狀態)依其 status 篩選任務。用逗號 (,) 分隔多個任務 statuses
    types* (所有類型)依其 type 篩選任務。用逗號 (,) 分隔多個任務 types
    indexUids* (所有索引)依其 indexUid 篩選任務。用逗號 (,) 分隔多個任務 indexUids。區分大小寫
    limit20要傳回的任務數量
    from最後建立任務的 uid傳回的第一個任務的 uid
    reversefalse如果 true,則以相反順序傳回結果,從最舊到最新
    canceledBy不適用依其 canceledBy 欄位篩選任務。用逗號 (,) 分隔多個任務 uids
    beforeEnqueuedAt* (所有任務)依其 enqueuedAt 欄位篩選任務
    beforeStartedAt* (所有任務)依其 startedAt 欄位篩選任務
    beforeFinishedAt* (所有任務)依據 finishedAt 欄位篩選任務
    afterEnqueuedAt* (所有任務)依其 enqueuedAt 欄位篩選任務
    afterStartedAt* (所有任務)依其 startedAt 欄位篩選任務
    afterFinishedAt* (所有任務)依據 finishedAt 欄位篩選任務

    回應

    名稱類型描述
    results陣列一個 任務物件 的陣列
    total整數符合篩選條件或查詢的任務總數
    limit整數返回的任務數量
    from整數傳回的第一個任務的 uid
    next整數傳遞給 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 動作的權限。