索引

    /indexes 路由允許您建立、管理和刪除索引。

    了解更多關於索引的資訊.

    索引物件

    {
      "uid": "movies",
      "createdAt": "2022-02-10T07:45:15.628261Z",
      "updatedAt": "2022-02-21T15:28:43.496574Z",
      "primaryKey": "id"
    }
    
    名稱類型預設值描述
    uid字串不適用索引的唯一識別碼。建立後,無法變更
    createdAt字串不適用索引的建立日期,以 RFC 3339 格式表示。在建立索引時自動產生
    updatedAt字串不適用索引更新的最新日期,以 RFC 3339 格式表示。在建立或更新索引時自動產生
    primaryKey字串 / nullnull索引的主鍵。如果未指定,Meilisearch 會從您新增至索引的第一個文件中猜測您的主鍵

    列出所有索引

    GET/indexes

    列出所有索引。結果可以使用 offsetlimit 查詢參數進行分頁。

    查詢參數

    查詢參數描述預設值
    offset要跳過的索引數量0
    limit要傳回的索引數量20

    回應

    名稱類型描述
    results陣列一個索引的陣列
    offset整數跳過的索引數量
    limit整數傳回的索引數量
    total整數索引總數

    範例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes?limit=3'

    回應:200 Ok

    {
      "results": [
        {
          "uid": "books",
          "createdAt": "2022-03-08T10:00:27.377346Z",
          "updatedAt": "2022-03-08T10:00:27.391209Z",
          "primaryKey": "id"
        },
        {
          "uid": "meteorites",
          "createdAt": "2022-03-08T10:00:44.518768Z",
          "updatedAt": "2022-03-08T10:00:44.582083Z",
          "primaryKey": "id"
        },
        {
          "uid": "movies",
          "createdAt": "2022-02-10T07:45:15.628261Z",
          "updatedAt": "2022-02-21T15:28:43.496574Z",
          "primaryKey": "id"
        }
      ],
      "offset": 0,
      "limit": 3,
      "total": 5
    }  
    

    取得一個索引

    GET/indexes/{index_uid}

    取得關於索引的資訊。

    路徑參數

    名稱類型描述
    index_uid *字串請求的索引的uid

    範例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies'

    回應:200 Ok

    {
      "uid": "movies",
      "createdAt": "2022-02-10T07:45:15.628261Z",
      "updatedAt": "2022-02-21T15:28:43.496574Z",
      "primaryKey": "id"
    }
    

    建立索引

    POST/indexes

    建立索引。

    請求主體

    名稱類型預設值描述
    uid *字串不適用請求的索引的uid
    primaryKey字串 / nullnull請求的索引的主鍵
    {
      "uid": "movies",
      "primaryKey": "id"
    }
    

    範例

    curl \
      -X POST 'https://127.0.0.1:7700/indexes' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "uid": "movies",
        "primaryKey": "id"
      }'

    回應:202 Accepted

    {
      "taskUid": 0,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "indexCreation",
      "enqueuedAt": "2021-08-12T10:00:00.000000Z"
    }
    

    您可以使用回應的 taskUid追蹤您的請求狀態

    更新索引

    PATCH/indexes/{index_uid}

    更新索引的主鍵。只要索引不包含任何文件,您可以自由更新索引的主鍵。

    若要變更已經包含文件的索引的主鍵,您必須先刪除該索引中的所有文件。然後您可以變更主鍵並再次索引您的資料集。

    注意

    無法變更索引的 uid

    路徑參數

    名稱類型描述
    index_uid *字串請求的索引的uid

    請求主體

    名稱類型預設值描述
    primaryKey *字串 / null不適用請求的索引的主鍵

    範例

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/movies' \
      -H 'Content-Type: application/json' \
      --data-binary '{ "primaryKey": "id" }'

    回應:202 Accepted

    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "indexUpdate",
      "enqueuedAt": "2021-08-12T10:00:00.000000Z"
    }
    

    您可以使用回應的 taskUid追蹤您的請求狀態

    刪除索引

    DELETE/indexes/{index_uid}

    刪除索引。

    路徑參數

    名稱類型描述
    index_uid *字串請求的索引的uid

    範例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies'

    回應:202 Accepted

    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "indexDeletion",
      "enqueuedAt": "2021-08-12T10:00:00.000000Z"
    }
    

    您可以使用回應的 taskUid追蹤您的請求狀態

    交換索引

    POST/swap-indexes

    交換兩個或多個索引的文件、設定和任務歷史記錄。您只能成對交換索引。 但是,單一請求可以交換任意數量的索引對。

    交換索引是原子交易:要么所有索引都成功交換,要么都不交換。

    交換 indexAindexB 也會在任務歷史記錄中將所有提及的 indexA 替換為 indexB,反之亦然。enqueued 任務保持不變。

    若要了解更多關於索引交換的資訊,請參閱此簡短指南。

    請求主體

    物件陣列。每個物件只有一個鍵:indexes

    名稱類型預設值描述
    indexes*字串陣列不適用要交換的兩個 indexUid 的陣列

    每個 indexes 陣列必須僅包含兩個元素:要交換的兩個索引的 indexUid。傳送空陣列 ([]) 是有效的,但不會執行任何交換操作。

    注意

    您可以使用單一請求交換多對索引。為此,每個要交換的索引對都必須有一個物件。

    範例

    curl \
      -X POST 'https://127.0.0.1:7700/swap-indexes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        {
          "indexes": [
            "indexA",
            "indexB"
          ]
        },
        {
          "indexes": [
            "indexX",
            "indexY"
          ]
        }
      ]'

    回應

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

    由於 indexSwap 是一個全域任務,因此 indexUid 始終為 null

    您可以使用回應的 taskUid追蹤您的請求狀態