/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 | 字符串 / null | null | 索引的主键。如果未指定,Meilisearch 会从添加的第一个文档中推测您的主键 |
列出所有索引
列出所有索引。可以通过 offset 和 limit 查询参数实现分页效果。
查询参数
| 查询参数 | 描述 | 默认值 |
|---|
offset | 跳过的索引数量 | 0 |
limit | 返回的索引数量 | 20 |
| 名称 | 类型 | 描述 |
|---|
results | 数组 | 包含索引对象的数组 |
offset | 整数 | 跳过的索引数量 |
limit | 整数 | 返回的索引数量 |
total | 整数 | 索引总数 |
curl \
-X GET 'MEILISEARCH_URL/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
}
获取单个索引
获取某个索引的信息。
路径参数
| 名称 | 类型 | 描述 |
|---|
index_uid * | 字符串 | 请求索引的uid标识符 |
curl \
-X GET 'MEILISEARCH_URL/indexes/movies'
响应: 200 Ok
{
"uid": "movies",
"createdAt": "2022-02-10T07:45:15.628261Z",
"updatedAt": "2022-02-21T15:28:43.496574Z",
"primaryKey": "id"
}
创建索引
创建一个索引。
请求体
| 名称 | 类型 | 默认值 | 描述 |
|---|
uid * | 字符串 | 必填 | 请求索引的 uid |
primaryKey | 字符串 / null | null | 请求索引的 主键 |
{
"uid": "movies",
"primaryKey": "id"
}
curl \
-X POST 'MEILISEARCH_URL/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}
更新索引的主键。只要索引不包含文档,您可以自由更新主键。
若要更改已包含文档索引的主键,必须先删除该索引中的所有文档。然后才能更改主键并重新索引数据集。
路径参数
| 名称 | 类型 | 描述 |
|---|
index_uid * | 字符串 | 请求索引的 uid |
请求体
| 名称 | 类型 | 默认值 | 描述 |
|---|
primaryKey * | 字符串 / null | 无 | 请求索引的 主键 |
curl \
-X PATCH 'MEILISEARCH_URL/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 'MEILISEARCH_URL/indexes/movies'
响应: 202 Accepted
{
"taskUid": 1,
"indexUid": "movies",
"status": "enqueued",
"type": "indexDeletion",
"enqueuedAt": "2021-08-12T10:00:00.000000Z"
}
您可以使用响应中的 taskUid 来跟踪请求状态。
交换索引
交换两个或多个索引的文档、设置和任务历史记录。只能成对交换索引,但单个请求中可以交换任意数量的索引对。
索引交换是原子事务:要么所有索引都成功交换,要么都不交换。
交换 indexA 和 indexB 还会在任务历史记录中将所有 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 来跟踪请求状态。