任務
/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
類型: 字串
描述: 任務的狀態。可能的值為 enqueued
、processing
、succeeded
、failed
和 canceled
type
類型: 字串
描述: 任務執行的操作類型。可能的值為 indexCreation
、indexUpdate
、indexDeletion
、indexSwap
、documentAdditionOrUpdate
、documentDeletion
、settingsUpdate
、dumpCreation
、taskCancelation
、taskDeletion
和 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
duration
類型: 字串
描述: 任務在 processing
狀態中花費的總時間,以 ISO 8601 格式表示
enqueuedAt
類型: 字串
描述: 任務首次 enqueued
的日期和時間,以 RFC 3339 格式表示
startedAt
類型: 字串
描述: 任務開始 processing
的日期和時間,以 RFC 3339 格式表示
finishedAt
類型: 字串
描述: 任務完成 processing
的日期和時間,無論是 failed
、succeeded
或 canceled
,都以 RFC 3339 格式表示
摘要任務物件
當 API 請求觸發非同步處理時,Meilisearch 會傳回摘要任務物件。此物件包含以下欄位
您可以使用此 taskUid
來取得有關任務狀態的更多詳細資訊。
取得任務
列出所有全域任務,無論索引為何。task
物件包含在 results
陣列中。
任務始終以 uid
的遞減順序傳回。這表示依預設,最近建立的 task
物件會先顯示。
查詢參數
查詢參數 | 預設值 | 描述 |
---|---|---|
uids | * (所有 uid) | 依其 uid 篩選任務。用逗號 (, ) 分隔多個任務 uids |
batchUids | * (所有批次 uid) | 依其 batchUid 篩選任務。用逗號 (, ) 分隔多個 batchUids |
statuses | * (所有狀態) | 依其 status 篩選任務。用逗號 (, ) 分隔多個任務 statuses |
types | * (所有類型) | 依其 type 篩選任務。用逗號 (, ) 分隔多個任務 types |
indexUids | * (所有索引) | 依其 indexUid 篩選任務。用逗號 (, ) 分隔多個任務 indexUids 。區分大小寫 |
limit | 20 | 要傳回的任務數量 |
from | 最後建立任務的 uid | 傳回的第一個任務的 uid |
reverse | false | 如果 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
}
取得單一任務
取得單一任務。
注意
如果您嘗試檢索已刪除的任務,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"
}
取消任務
根據任務的 uid
、status
、type
、indexUid
或它們被加入佇列 (enqueuedAt
) 或處理 (startedAt
) 的日期,取消任何數量的 enqueued
或 processing
任務。
任務取消是原子交易:要么所有任務都成功取消,要么都不取消。
警告
為了防止使用者意外取消所有已加入佇列和正在處理的任務,如果沒有任何篩選條件 (POST /tasks/cancel
) 就使用此路由,Meilisearch 會拋出 missing_task_filters
錯誤。
您知道嗎?
您也可以取消 taskCancelation
類型的任務,只要它們處於 enqueued
或 processing
狀態。這是可能的,因為 taskCancelation
類型的任務會以相反的順序處理,因此最後加入佇列的任務會先被處理。
查詢參數
必須要有有效的 uids
、statuses
、types
、indexUids
或日期 (beforeXAt
或 afterXAt
) 參數。
查詢參數 | 描述 |
---|---|
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
來取得關於任務狀態的更多詳細資訊。
取消所有任務
您可以使用以下篩選器取消所有 processing
和 enqueued
任務
使用的 API 金鑰必須具有存取所有索引 ("indexes": [*]
) 的權限,以及 task.cancel
動作的權限。
刪除任務
根據 uid
、status
、type
、indexUid
、canceledBy
或日期,刪除已完成 (succeeded
、failed
或 canceled
) 的任務。任務刪除是原子交易:要么所有任務都成功刪除,要么都不刪除。
警告
為了防止使用者意外刪除整個任務歷史記錄,如果沒有任何篩選條件 (DELETE /tasks
) 就使用此路由,Meilisearch 會拋出 missing_task_filters
錯誤。
查詢參數
必須要有有效的 uids
、statuses
、types
、indexUids
、canceledBy
或日期 (beforeXAt
或 afterXAt
) 參數。
查詢參數 | 描述 |
---|---|
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
來取得關於任務狀態的更多詳細資訊。
刪除所有任務
您可以使用以下篩選器刪除所有已完成的任務
使用的 API 金鑰必須具有存取所有索引 ("indexes": [*]
) 的權限,以及 task.delete
動作的權限。