索引

    /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跟踪您的请求状态