/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 'MEILISEARCH_URL/indexes?limit=3'

响应:200 成功

{
  "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 'MEILISEARCH_URL/indexes/movies'

响应:200 成功

{
  "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 'MEILISEARCH_URL/indexes' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "uid": "movies",
    "primaryKey": "id"
  }'

响应:202 已接受

{
  "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 'MEILISEARCH_URL/indexes/movies' \
  -H 'Content-Type: application/json' \
  --data-binary '{ "primaryKey": "id" }'

响应:202 已接受

{
  "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 'MEILISEARCH_URL/indexes/movies'

响应:202 已接受

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

您可以使用响应中的 taskUid跟踪请求的状态

交换索引

POST /swap-indexes
POST
/swap-indexes

交换两个或更多索引的文档、设置和任务历史。您只能成对交换索引。但是,单个请求可以交换任意数量的索引对。

交换索引是一个原子事务:要么所有索引都成功交换,要么都不成功。

交换 indexAindexB 也会在任务历史中将所有提到 indexA 的地方替换为 indexB,反之亦然。enqueued 任务保持不变。

要了解更多关于索引交换的信息,请参阅本简短指南。

请求体

一个对象数组。每个对象只有一个键:indexes

名称类型默认值描述
indexes*字符串数组不适用要交换的两个 indexUid 的数组

每个 indexes 数组必须只包含两个元素:要交换的两个索引的 indexUid。发送空数组 ([]) 是有效的,但不会执行任何交换操作。

您可以通过单个请求交换多对索引。为此,每对要交换的索引都必须有一个对象。

示例

curl \
  -X POST 'MEILISEARCH_URL/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跟踪请求的状态